<table><tr><td style="">romangg added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D29024">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D29024#653096" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D29024#653096</a>, <a href="https://phabricator.kde.org/p/davidedmundson/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@davidedmundson</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>KScreen already is a plugin system.</p></div>
</blockquote>

<p>You mean libkscreen? It has a plugin system for differentiating between windowing systems, yes.</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>We don't need to go all inception, and have a plugin load plugins. It doesn't look to bring anything other than complexity.</p>

<p>If there is any duplication, we can just add some extra base classes in the lib using the split you've done above that the plugin can inherit from.</p></blockquote>

<p>That's not a practical solution. The windowing system plugins <a href="https://cgit.kde.org/libkscreen.git/tree/src/backendmanager.cpp#n135" class="remarkup-link" target="_blank" rel="noreferrer">are chosen on the basis of Qt platform name</a> without running any async requests. But we need to check in async communication with the Wayland compositor which protocol is supported, select that one and cleanup the other ones. For that at least one Wayland event loop has to be launched. Trying to implement that on the higher level of the previously available plugins not needing such a runtime setup would be ill-advised.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R110 KScreen Library</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D29024">https://phabricator.kde.org/D29024</a></div></div><br /><div><strong>To: </strong>romangg, Plasma<br /><strong>Cc: </strong>davidedmundson, plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>