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
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. D29131 kwin!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.
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.
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.
KRunner is better positioned.
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. D28331 D28310
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.