I switched to Linux about 1.5 years ago now when replacing my old Macbook Pro with a Tuxedo Infinity Book. I am super happy with the transition, and for the most part my digital life has severely improved as a result of it. There’s one thing in particular though that I haven’t fully grasped or understood despite all the talk about it, and that really has mostly caused confusion on my part, and that is Xorg/X11 (I don’t know the difference…) vs. Wayland.
I started out with Tuxedo OS 1 and 2 running KDE Plasma 5.x.x, and thus have been on X11 for the most part since switching to Linux. I never dared switching to Wayland myself. However, they somewhat recently started offering optional upgrades to Tuxedo OS 3 running KDE Plasma 6 where Wayland is the default, and I took the plunge. The only real difference I noticed was small annoyances that I had to fix. Glitching windows running on XWayland and having to configure some .desktop
-files to force apps to launch natively in Wayland. Apps not showing the correct desktop icons but the generic Wayland logo instead, making Alt+Tabbing a bit more difficult because it is harder to tell applications apart. Annoying smooth scrolling (I don’t want scrolling to have as much friction as polished ice) activated in all kinds of applications that I seem to have to turn off individually. Nothing breaking (though I haven’t dared booting with my Nvidia dGPU yet in fear of breaking something irreversibly…), but I haven’t noticed any improvements either, and I find it a bit frustrating not knowing where to make the necessary changes and always having to search for it seemingly on a case by case basis.
Now for instance I was updating FreeTube to a new version, and the flags I previously added to the ́.desktop’-file suddenly doesn’t work anymore (--enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto
). The application won’t launch unless I remove them, but then it launches under XWayland instead. Not that I have any issues so far running it like that, but I guess I would prefer to run everything natively in Wayland if I can.
Thanks for such a detailed account - it really makes sense to move on from X11 based on what you write.
When I first heard about what X11 and Wayland was and how long the transition has been in the making, I found it a bit hard to believe that it should take so long. I am still not fully sure why it would take so long time to mature… is it a chicken-and-egg kind of situation where it cannot mature properly before it is more widely used, but it has not been more widely used because it was not mature enough? Or is it such a difficult task to get this right and that the development time reflects that?
And why would for instance NVIDIA GPUs continue to have issues with Wayland (and what kind of issues would actually be caused by this?)? Is that a matter of closed source drivers and lack of support from NVIDIA’s side to implement required changes? Or are such issues on a more fundamental level (i.e. architectural differences that somehow factors into this - I have no idea what I’m talking about now, I’ll stop writing…)?
Closed source drivers are not really the issue. But competing graphics APIs are. With the move to Wayland open graphics drivers were updated to support the GBM graphics API which if one window manager wants to support then it gains support for all graphics drivers that use that api. But nvidia created its own api, eglstreams that to support required all window managers to write extra code for. Some refused to do that or took a long time to do.which gave shoddy nvidia support.
Some did support nvidia slowly, but then nvidia also switched to support the same api as everyone else (poorly at first but I assume it has improved over the years). Nvidia have also partly released their drivers as open source which has also helped.
Ah, OK. I wasn’t aware of those APIs, only things like OpenGL and Vulkan, but those are perhaps specific to 3D graphics rendering?
And windows managers in the context of Wayland are the same as Wayland compositors? Which compositor would I be using through KDE Plasma 6?
KDE uses KWin by default, which can do both X11 and Wayland currently.
Re: maturity - I think it is the latter where the problem is very complex and the dev time reflects that, it takes a long time to implement all the features people need and are used to in X11 (or, used to when coming from windows/macOS). For instance, screensharing is still not widely solved across all wayland compositors. In Gnome or KDE Plasma, it works as you’d expect. But a smaller project like river (tiling window manager that I daily drive rn) does not handle screensharing out of the box and takes some extra configuration - and even then it’s got some oddities that I didnt have in KDE.
As for your issues with NVIDIA gpus under Wayland, yes I think it comes down to driver support from NVIDIA (or the open source drivers just need to mature some more)