JASCO

On Wayland

Published: Thu, 20 Nov 2025 23:54:12 -0800

Sigh...

Xorg is an aging pile of bugs, leftovers from stripped out previous features, and poor implementations. However, it's the only good display server we have.

It has been in maintenance mode for the majority of the time I have been using Linux, despite the lack of new features, Linux adoption has exploded and most people don't even have to think about what display server they are running. That is, until they are "upgraded" to Wayland by default and features that used to work suddenly stop working.

Now I'm not going to beat the dead horse about all the things that Wayland can't do. This has been trodden over so many times, and with ongoing development this post would have to be updated with strike-throughs and asterisks. Yet the main point still rings true, something shouldn't be touted as a replacement until it is actually capable of replacing the thing it's supposed to replace, and in the case of Wayland for Xorg, there are many workflows that it cannot.

What I'm more interested in discussing is the fundamental flaws with Wayland's approach.

Clients are treated as a hostile party in design philosophy.

One of the key "issues" with Xorg is its security model, or lack there of. Any client can become a keylogger or be funnelling off a live stream of your desktop to a hostile actor, and there's no way for X to stop it. Is this really a problem though? How often do we hear about the keyloggers plaguing Xorg desktops? The software distribution model of most distributions makes most pathways for malware null and void, however that's not how Wayland took it.

Their solution to the (non-existent) problem is to isolate clients so that they are only able to effect themselves. They're only able to read key-presses when their client is focussed and they can't capture the screen. Of course, global hotkeys or screenshot utilities must have completely slipped the mind of Wayland developers when they were drafting that design decision out.

Furthermore, this design principle just does not adapt well to a multi-window environment. With the single-window environment of mobile OSs, it makes sense; I don't want any old app to be poking around all the apps I forgot to close out of, and really they have no reason to. With all major platforms taking the Xorg attitude towards isolation (until recently), applications and the people who use them expect to be able to have their windows interact with one another.

Where a display server should be working to enable applications to be able to do whatever they need to do, Wayland goes out of it's way to make sure they can't do anything outside a slim set of acceptable actions.

"But Jasco!!", you exclaim, "Wayland allows applications to interact with each other through the desktop portals and pipewire!"

Which brings us to the next point.

Over-reliance on middleware to do display server tasks

Since applications DO need to interact with one another, Wayland needed a way to allow it. Their solution was desktop portals. This allows temporary access to certain parts of the underlying system through a user-confirmation pop-up window. Really?

Confirmation pop-ups have been the butt of jokes for the past couple decades for a reason, they suck. They slow you down, having to confirm each time you want to do something, instead of just doing the thing you asked it to. All this does is train users to automatically accept any of these pop-ups. Granted, they may have learned these habits from other platforms (looking at you iOS), but it basically nullifies any gained security. If I were ever to be targeted on my work Mac, the bad actor would have no issues because by the time my eyes have registered I'm looking at the Okta verify prompt, my finger is already on the scanner to authorize it. It seems like this is being done a bit more intelligently on most portals, only asking once on first time use, but it is nevertheless not actual security, and thus further makes this a poor decision by Wayland.

So much of what makes the desktop actually usable is not part of the display server at all. Sure this makes it a bit easier to swap things out if it ever comes to that in the future, but how is this an improvement? Now the code can grow long in the tooth in a different repository than the rest of the display server?

Fragmentation by design

"Wayland is a protocol" is a mantra (deflection) of Wayland zealots. It is true, Wayland is simply the protocols used to communicate with the compositor, which is the display server. However, by not having a unified /usr/bin/wayland, You require each project to implement the same protocols in their own ways. In a perfect world this wouldn't be an issue as all the Wayland projects would work together to find the best way to implement it, but we do not live in a perfect world. When Xorg implemented a new feature, every window manager and desktop environment didn't need to scramble to implement it, the rising tide simply raised all the ships.

Poor governance

Looking at the governance model, it seems pretty good on paper. Major projects get to agree on what protocols get added and each project must implement the core protocols. Ignoring the fragmentation problem, so long is everyone is being a good steward of the project, relevant protocols will get added to the core as necessary.

The only problem is Gnome does not act as a good steward, they only seek to serve their own interest. This has held back protocols from being added because Gnome had no use for them. This has left the core protocols to be anemic and ones that really should be part of core to live out their lives in the unstable namespace.

This is makes life particularly difficult for an application developer, as you don't know what extended protocols are going to be supported, and the core ones don't provide the functionality you need.

A lack of introspection

I understand as a group of former Xorg developers, you wouldn't want to reimplement the same system that caused you so many issues and made you to start a new project in the first place. However, after a decade I would start to question if I had tossed the baby out with the bathwater if it has still not taken over as the successor. I would start to wonder if the dogmatic ideals I based my project on were in some way flawed. I'd look at the 2 year long debate over a coordinate system being merged as something to be ashamed about.

Yes, things are getting better in terms of things like governance, and the overall user experience, but how did it take 12 years?


On XLibre

Sigh...

So as I have made clear so far, I'm not a big fan of Wayland. Naturally when I heard the current lead developer of Xorg started a fork, XLibre, I was intrigued. Even if it means breaking some software, I think there are good bones and a strong history behind X and don't want it to be replaced by Wayland. However I am disappointed by how the project has positioned itself:

"This is an independent project, not at all affiliated with BigTech or any of their subsidiaries or tax evasion tools, nor any political activists groups, state actors, etc. It's explicitly free of any "DEI" or similar discriminatory policies. Anybody who's treating others nicely is welcomed."

I don't really take issue with the substance of what he is saying. The recent (now waning) obsession over Codes of Conduct and the more illiberal elements of "wokeness" have not made things any better for the open source world.

But man, it's a display server, do you really need to champion it as being the anti-DEI alternative? That's going to do little more than stop you from being included in repositories and alienate people. You could have cut out 1 sentence and not made this all about the culture war.

Still, progress is being made, and I hope for the best for the project. I'll probably end up running it sooner or later.

Reflection

In reality, my software selection would only need to be minorly tweaked in order to have a comparable setup to what I have now, some things may even be improved, but yet I don't want to. Maybe it's in part an act of defiance against a project that wants a different future for the desktop than what I imagine. Maybe it's just that innate fear of change that we all have to some degree. I'm not sure which, but I do know one thing.

I'm still running X

Contact Me

I regularly check my email, If I don't respond quickly, send me a poke:
jasco.website@pm.me