Posted in

I held onto X11 longer than I should have, and switching to Wayland fixed these…

The topic I held onto X11 longer than I should have, and switching to Wayland fixed these… is currently the subject of lively discussion — readers and analysts are keeping a close eye on developments.

This is taking place in a dynamic environment: companies’ decisions and competitors’ reactions can quickly change the picture.

I’d been an X11 user for decades, so when I saw that the developers of KDE were dropping support in favor of Wayland, I didn’t know how to feel. If you were an early Linux user, you couldn’t get away from the X Window system unless you wanted to use the command line without a GUI, and we all grew up knowing how to use and tweak it.

But with GNOME and KDE Plasma finally retiring the 42-year-old desktop system, it was time for me to move on, too. Wayland felt familiar in a different way after decades of macOS and Windows, and I can’t deny the security and fringe benefits it offered. I don’t doubt that some people will stay on X11 for philosophical or app support reasons, but for me, I’m embracing the future of Linux desktop environments.

Wayland did not break Linux desktops. It exposed long-standing assumptions and pushed the ecosystem toward clearer, more intentional design.

Look, I know it’s silly to stay with an outdated display server standard for so long because of a nerdy graphical effect, but that’s the truth of it. I’d used Linux before, but when I got my first laptop, I went Linux-only because it wasn’t powerful enough to run Windows XP reliably. Then I discovered Compiz, and more specifically, the cube effect for virtual desktop switching, and I fell in love.

You couldn’t do this on Windows. Okay, you technically could by using PowerToys for Win XP, but it was one of the buggiest pieces of Microsoft software I’ve ever used, which says something. You could do it with a few other third-party apps as well, but Linux had it built in.

It was transformative. I could have multiple workspaces instead of needing multiple monitors. What’s more, I could work on something on one virtual desktop and quickly shift to another if someone was trying to see what I was doing, and I often had a virtual desktop with a browser window and some Facebook game open to do this. I loved it, and it only worked on X11.

Except, now it works on Wayland, thanks to the KDE Plasma desktop environment. It’s technically been in there for a few years now, but there was a bug where you could enable it, but the desktop wouldn’t display it, and that one only got fixed a little while back. I didn’t know, and was happily staying on X11 so I could spin the cube when I got bored. Which, admittedly, was quite often.

The X11 server model had many flaws, as you’d expect from software written near the start of the personal computing era. One of the big ones is that it wasn’t designed to be secure. X11 applications could keylog the entire system, capture screenshots of other running programs, or even inject system inputs such as keystrokes or mouse movements. Security just wasn’t at the forefront of programmers’ minds in 1984, in the age before widespread internet access.

But those aren’t the only things it was insecure about. X11 uses 32-bit integer handles in the buffer system, and any program guessing those descriptors could access the graphics memory of that program. And it’s one that can’t be patched out without breaking X11 compatibility altogether.

Wayland has none of these issues. It was designed to prevent malicious applications from accessing other programs. It also uses DMA-buf sharing with file descriptors to secure graphics memory access, and the kernel enforces that security. The flip side is that screen-sharing and RDP apps needed to be rewritten for the new security model. Nothing that macOS or Windows devs haven’t had to do several times over in the decades X11 has been around, but it’s worth mentioning because the security model breaking connectivity is one of the things Wayland’s detractors mention often.

These surprising adjustments become second nature once you start using Wayland.

Wayland enables HDR on Linux for the first time, which is almost enough to switch if you’ve got a nice monitor or laptop screen. Screen tearing from the X server and compositor being separate entities is gone, too. Fractional scaling works, so you can have multiple monitors with different scaling without hacking around the X11 restrictions. And the zero-copy buffer for GPU use means lower latency, though it had some rough edges until recently.

One of the other blockers for me was Nvidia support, which was resolved in the R555 line of drivers. This even works with laptops that used to rely on Optimus to switch between the Intel iGPU and Nvidia dGPU, but you don’t need optimus-manager or bumblebee anymore, just PRIME to work.

There is a current bug in Plasma 6.7.0 where the display doesn’t always return after going into sleep mode, screen lock, or automatic suspend. I’ve turned those off on my laptop until the KDE bug tracker says it’s been resolved, but even then, a reboot usually fixes it. And it’s a simple bug to work around, unlike many of the X11 issues I’ve had over the years.

Wayland isn’t perfect, but what is? I find that I’m working in the browser or playing games 95% of the time when I’m on the computer anyway, and these are the things that Wayland is better at. X11 has had its day in the sun, and it’s barely being maintained right now. Red Hat pays some of its employees to fix bugs and security issues (at least the ones that can be patched), but they’re transitioning away eventually, and X11 will become fully unmaintained at that point. It’s time to pull the band-aid off and start learning the quirks of Wayland.