We have been busy recently on the Wayland Goal.
A few of those points were already highlight on Nate's excellent blog. But some were missing, and I wanted to highlight those dedicated to Wayland with more context.
The changes I mention here will be present in Plasma 5.19, but they are not exhaustive.
KWin and architecture changes
Thanks to Aleix Pol, KWin Wayland in Plasma 5.19 now has Wayland tablet protocol support meaning we have tablet touch and pen pressure. Kwin patch and KWayland patch
Vlad improved subsurface clipping, it means the compositor can do less work and better figure out what to paint and not to paint. It is most visible for applications like Firefox that uses a lot of Wayland surfaces. D29131kwin!5
With D29250 the resizing of XWayland windows has become less resource demanding and matches X experience. This still needs next version of XWayland 1.21 to work though.
And KWin has had more changes under the surface.
The KWayland
library has been split library into two libraries. One KWayland contains
the regular KWayland::Client
stuff but the new kwayland-server contains
now the KWayland::Server
part.
Because KWayland
is part of KDE frameworks it is released
monthly, independently of Plasma releases, and we have to care about not
breaking the API when making changes. But on the other hand
KWayland::Server
is only ever used by KWin, so it added some churn
to the development of KWayland::Server
which was not needed. Now
KWayland-server
will have a Plasma release cycle same as KWin, and
will simplify our workflow evolving our Wayland compositor implementation. New
depot is at https://invent.kde.org/plasma/kwayland-server.
Plasma
The global application menu has is now working in Wayland thanks to Carson Black patch serie: D27464, D28168, D28150, D28112, D27959, D27818 and D28146, bug. This is typical Wayland work : make new APIs because old ones were X specific or could not work with Wayland, add some wiring code and then use the new one in programs using. This most often end up in better code architecture, better decoupled.
The task manager can now bring forward multiple windows of the same program and remembering in which order they are stacked together bugpatch 1patch 2patch 3 and patch 4.
KRunner is better positioned.
Kscreen Osd are now usable, allowing you to to setup a newly connected screen and identify your plugged-in screen bugD28817D28818D28916
Bugfixes
Quite a few crash KWin were resolved :D28668D28858D28889D27536kwin!9kwin!8
And drkonqi got a couple fix : D28692D28832.
Plasma Wayland specific features
Thanks to the way Wayland is architectured, we can add features than are impossible with X server. For instance in plasma 5.19 in Wayland you will be able to setup a scrolling speed for mice and touchpads. D28331D28310
But our journey is far from over.
Our goal is in part to make Plasma run in Wayland by default allowing pixel perfection, real security in the display server, better performance and overall better architecture.
The road is still long to reach feature parity with the venerable X based sessions. So we need as much people to help whether it is for testing, hacking code or reporting bugs.
There is a Plasma virtual Sprint starting right now spawning two weeks, where a lot of people involved in the Goal will participate. I invite you to join-in : Plasma virtual sprint 2020.
Also Drew DeVault released a great book about Wayland you can read at https://wayland-book.com/ to better understand Wayland inner-workings.