logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

KDE-Sprint-retrospective.md (4169B)


  1. ---
  2. date: 2018-04-28
  3. layout: post
  4. title: Sway reporting in from KDE's Berlin development sprint
  5. tags: [roundup, sway, wayland, kde]
  6. ---
  7. I'm writing to you from an airplane on my way back to Philadelphia, after
  8. spending a week in Berlin working with the KDE team. It was great to meet those
  9. folks and work with them for a while. It'll take me some time to get the taste
  10. of C++ out of my mouth, though! In all seriousness, it was a very productive
  11. week and I feel like we have learned a lot about each other's projects and have
  12. a strengthened interest in collaborating more in the future.
  13. The main purpose of my trip was to find opportunities for
  14. [sway](http://swaywm.org) and [KDE](http://kde.org) to work together on
  15. improving the Linux desktop. Naturally, the main topic of discussion was
  16. interopability of software written for each of our projects. I brought the
  17. wlroots layer-shell protocol to the table seeking their feedback on it, as well
  18. as reviewing how their desktop shell works today. From our discussions we found
  19. a lot of common ground in our designs and needs, as well as room for improvement
  20. in both of our approaches.
  21. The KDE approach to their desktop shell is similar to the original sway
  22. approach. Today, their Plasma shell uses a number of proprietary protocols which
  23. are hacks on top of the xdg-shell protocol (for those not in the know, the
  24. xdg-shell protocol is used to render normal desktop windows and is not designed
  25. for use with e.g. panels) that incorporate several of the concepts they were
  26. comfortable using on X11 in an almost 1:1 fashion. Sway never had any X11
  27. concepts to get comfortable with, but some may not know that sway's panel,
  28. wallpaper, and lock screen programs on the 0.x releases are also hacks on top of
  29. xdg-shell that are not portable between compositors.
  30. In the wlroots project (which is overseen by sway), we've been developing a
  31. new protocol designed for desktop shell components like these. In theory, it is
  32. a more generally applicable approach to building desktop shells on Wayland than
  33. the approach we were using before. I sat down with the KDE folks and went over
  34. this protocol in great detail, and learned about how Plasma shell works today,
  35. and we were happy to discover that the wlroots approach (with some minor tweaks)
  36. should be excellently suited to Plasma shell. In addition to the layer-shell, we
  37. reviewed several other protocols Plasma uses to build its desktop experience,
  38. and identified more places where it makes sense for us to unify our approach.
  39. Other subjects discussed included virtual desktops, external window management,
  40. screen capture and pipewire, and more.
  41. The upshot of this is that we believe it's possible to integrate the Plasma
  42. shell with sway. Users of KDE on X11 were able to replace kwin with i3 and still
  43. utilize the Plasma shell - a feature which was lost in the transition to
  44. Wayland. As we continue to work together, this use-case may well be captured
  45. again. Even KDE users who are uninterested in sway stand to benefit from this.
  46. The hacks Plasma uses today are temporary and unmaintainable, and the
  47. improvements to Plasma's codebase will make it easier to work with. Should kwin
  48. grow stable layer-shell support, clients designed for sway will work on KDE as
  49. well. Replacing sway's own similar hacks will have similar benefits for our
  50. codebase and open the door to 3rd-party panels, lockscreens, rofi, etc.
  51. I spent my time in their care working on actual code to this end. I wrote up a
  52. C++ library that extends Qt with layer-shell support called
  53. [qtlayershell](https://github.com/SirCmpwn/qtlayershell), and extended the
  54. popular [Latte Dock](#) KDE extension to support it. Though this work is not
  55. complete, it works - as I write this blog post, Latte is running on my sway
  56. session! This is good progress, but I must return my focus to wlroots soon. If
  57. you are interested in this work, please help me complete it!
  58. ![](/img/latte-dock.png)
  59. A big thanks goes to KDE for putting on this event and covering my travel costs
  60. to attend. I hope they found it as productive as I did, and I'm very excited
  61. about working more with them in the future. The future of Wayland is bright!