diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-04-29 08:37:49 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-04-29 08:37:49 -0400 |
commit | 042290aa01ec8c5d9fe54c47b52563eb226f6dc8 (patch) | |
tree | 36b8c55025359c3a1bc40641ca9bd4ef0fb41a59 | |
parent | bd857b472322d9084ff066dddb746521e55a791d (diff) |
KDE retro post
-rw-r--r-- | _posts/2018-04-28-KDE-Sprint-retrospective.md | 67 | ||||
-rw-r--r-- | img/latte-dock.png | bin | 0 -> 403228 bytes |
2 files changed, 67 insertions, 0 deletions
diff --git a/_posts/2018-04-28-KDE-Sprint-retrospective.md b/_posts/2018-04-28-KDE-Sprint-retrospective.md new file mode 100644 index 0000000..983468a --- /dev/null +++ b/_posts/2018-04-28-KDE-Sprint-retrospective.md @@ -0,0 +1,67 @@ +--- +layout: post +title: Sway reporting in from KDE's Berlin development sprint +--- + +I'm writing to you from an airplane on my way back to Philadelphia, after +spending a week in Berlin working with the KDE team. It was great to meet those +folks and work with them for a while. It'll take me some time to get the taste +of C++ out of my mouth, though! In all seriousness, it was a very productive +week and I feel like we have learned a lot about each other's projects and have +a strengthened interest in collaborating more in the future. + +The main purpose of my trip was to find opportunities for +[sway](http://swaywm.org) and [KDE](http://kde.org) to work together on +improving the Linux desktop. Naturally, the main topic of discussion was +interopability of software written for each of our projects. I brought the +wlroots layer-shell protocol to the table seeking their feedback on it, as well +as reviewing how their desktop shell works today. From our discussions we found +a lot of common ground in our designs and needs, as well as room for improvement +in both of our approaches. + +The KDE approach to their desktop shell is similar to the original sway +approach. Today, their Plasma shell uses a number of proprietary protocols which +are hacks on top of the xdg-shell protocol (for those not in the know, the +xdg-shell protocol is used to render normal desktop windows and is not designed +for use with shell surfaces) that incorporate several of the concepts they were +comfortable using on X11 in an almost 1:1 fashion. Sway never had any X11 +concepts to get comfortable with, but some may not know that sway's panel, +wallpaper, and lock screen programs on the 0.x releases are also hacks on top of +xdg-shell that are not portable between compositors. + +In the wlroots project (which is overseen by sway), we've been developing a +new protocol designed for desktop shell components like these. In theory, it is +a more generally applicable approach to building desktop shells on Wayland than +the approach we were using before. I sat down with the KDE folks and went over +this protocol in great detail, and learned about how Plasma shell works today, +and we were happy to discover that the wlroots approach (with some minor tweaks) +should be excellently suited to Plasma shell. In addition to the layer-shell, we +reviewed several other protocols Plasma uses to build its desktop experience, +and identified more places where it makes sense for us to unify our approach. +Other subjects discussed included virtual desktops, external window management, +screen capture and pipewire, and more. + +The upshot of this is that we believe it's possible to integrate the Plasma +shell with sway. Users of KDE on X11 were able to replace kwin with i3 and still +utilize the Plasma shell - a feature which was lost in the transition to +Wayland. As we continue to work together, this use-case may well be captured +again. Even KDE users who are uninterested in sway stand to benefit from this. +The hacks Plasma uses today are temporary and unmaintainable, and the +improvements to Plasma's codebase will make it easier to work with. Should kwin +grow stable layer-shell support, clients designed for sway will work on KDE as +well. Replacing sway's own similar hacks will have similar benefits for our +codebase and open the door to 3rd-party panels, lockscreens, rofi, etc. + +I spent my time in their care working on actual code to this end. I wrote up a +C++ library that extends Qt with layer-shell support called +[qtlayershell](https://github.com/SirCmpwn/qtlayershell), and extended the +popular [Latte Dock](#) KDE extension to support it. Though this work is not +complete, it works - as I write this blog post, Latte is running on my sway +session! This is good progress, but I must return my focus to wlroots soon. If +you are interested in this work, please help me complete it! + +![](/img/latte-dock.png) + +A big thanks goes to KDE for putting on this event and covering my travel costs +to attend. I hope they found it as productive as I did, and I'm very excited +about working more with them in the future. The future of Wayland is bright! diff --git a/img/latte-dock.png b/img/latte-dock.png Binary files differnew file mode 100644 index 0000000..c3a214c --- /dev/null +++ b/img/latte-dock.png |