Re-purposing KWaylandServer

Vlad Zahorodnii vlad.zahorodnii at kde.org
Tue Mar 23 08:44:06 GMT 2021


Hi,

Currently, KWaylandServer library is a collection of convenience Qt 
wrappers around Wayland protocols. The issue with such a design is that 
the bulk of work needs to be still done in the compositor, for example 
it still needs to deal with importing client buffers, setting up the 
session, handling of input and drm devices, launching xwayland, etc.

I believe that a better design will involve offloading all non-kwin 
features from kwin to kwaylandserver:

* kwin code base will be leaner. All window management features will be 
in kwin, while low level specific bits will be well contained in 
kwaylandserver

* it's a more reusable design in general; this allows writing domain 
specific wayland compositors easier, for example for tv, mobile, etc

* the implementation of some wayland protocols will become a bit more 
straightforward. At the moment, due to odd split of functionality 
between kwin and kwaylandserver, it's not clear what the best way to 
implement some protocols or features is, e.g. presentation feedback, 
linux dma-buf, popup grabs, etc

* it's a safer design choice in long term. Currently, things go quite 
well in kwin, but just in case something goes wrong and we decide to 
start a new Wayland compositor, we won't have to write low level 
components such as the DRM backend, input device handling, and so on 
from scratch.

Thoughts?

Cheers,
Vlad


More information about the Plasma-devel mailing list