I like that this article isn't just a bunch of GNOME hate. But I freely admit to being frustrated that this switch is being forced when they're still developing basic accessibility functionality for GNOME. Once I switch to Wayland, I have to find new ways of:
- Adding hotkeys
- Replacing all my utilities that involve screenshot + OCR
- Making sure Orca works to some extent (low expectations here, but I need some of it to work)
- Reversing the gamma ramp
- Screen magnification
I have mapped out some approaches to most of these, but I full anticipate one or more to be show-stoppers or items I have to attempt to implement from scratch. I'm looking at 100 hours of work, minimum, to make this switch, and am basically just left out in the cold to figure all these workflows out under more hostile circumstances. It's also a chicken and egg, since I need to bootstrap into the new environment without any of my old tools working.
It's great that GNOME is taking some of this seriously, but they're forcing a very difficult transition, and it's frustrating that they think accessibility is in a usable state, or that we're low prioritiy enough to not matter. I'vbe heard the word "edge case" used a lot, it really stinks to be in a category where your entire computer use and professional career are considered an edge case.
yjftsjthsd-h · 47m ago
> Making sure Orca works to some extent (low expectations here, but I need some of it to work)
It sounds like this actually is supposed to work? At least on GNOME?
cardanome · 1h ago
I am still perfectly happy running X11. I am not going to switch any time soon.
Never change a running system.
The fact that only Gnome kind-off supports basic accessibility on wayland already shows what a giant failure wayland is.
tetraodonpuffer · 54m ago
it only takes popular distributions making it default, then all sorts of things will start depending on it, and it will be difficult to not switch eventually. As somebody that has written a lot of xlib/xt/motif code years back, and that still has the full O'Reilly X series set on my bookshelves, I would prefer X11 to continue; but just like sysv->systemd it seems things are moving against that being the case.
DonaldFisk · 1h ago
I understand that Wayland doesn't support Xlib function calls. What are the options for those of us who rely on C code which which uses Xlib for 2d graphics and event handling? If I have to switch to e.g. GTK, I'd not only have to rewrite all the Xlib calls, but all the code which depends on this, as Xlib and GTK do graphics ad events quite differently.
bpfrh · 1h ago
Isn't libwayland-client the replacement?
E.g. you now use the wayland calls instead of x11 calls
DonaldFisk · 57m ago
Specifically, I mean functions such as XCreateSimpleWindow, XDrawRectangle, XDrawArc, XmbDrawString, XNextEvent, etc.
wizzwizz4 · 1h ago
XWayland is still supported, and afaik will be for some time. It's only standalone Xorg which isn't.
> GNOME’s Wayland session is now stable and usable with Orca.
They did that via an out-of-band D-Bus protocol, rather than going full Wayland. I'm all for keeping D-Bus around for backwards-compatibility (lots of things use AT-SPI2, and I certainly don't want a repeat of the CORBA -> D-Bus migration), but Wayland's AT support should be first-class, not relegated to proprietary GNOME extensions.
> Assistive technologies or other accessibility clients currently connect to the compositor through a D-Bus protocol, defined in the Mutter repository linked above. By exposing this interface via D-Bus rather than Wayland, we make it easy to withhold this communication channel from sandboxed applications, which shouldn’t have this level of access.
jauntywundrkind · 14m ago
Excellent excellent call out. This feels very wrong direction, this using a side-band for accessibility!!! I had no idea.
It's surprising to me that security would prompt the push to D-Bus. Wayland's design with the compsitor as the message bus center was built to center security in the architecture, to make the compositor the arbiter of data flows. I'm struggling to picture what the issue was here with sandboxed applications.
Kim_Bruning · 2h ago
More and more people are using GPT for editing. I admit to sometimes using AI to help me too. To be fair, I'm not sure what to think of this particular slick style quite yet.
Fr3ck · 2h ago
What in particular drove you to leave this comment? I am just curious. This doesn't strike me as Gen AI slop like other posts I see sometimes.
abhinavk · 1h ago
People see an em dash and dismiss it as slop.
Maybe they don't know but some of us love them and have keyboards which have an em-dash/en-dash key or use an OS where they are easy to type.
wizzwizz4 · 1h ago
It's got an —, and apparently these are called "ChatGPT hyphens" now – even though they're on my keyboard.
beej71 · 51m ago
Bad news for all my programming guides that use em dashes properly... ;D Luckily I have a Git history on them that predates LLMs, for whatever that's worth.
In Vim, the digraph is ^K-M.
mkesper · 2h ago
TLDR (non-AI): The author raises very valid points about accessibility under Wayland. The "And Now We Don’t Have a Choice" subtitle seems to address that only Gnome seems to have usable accessibility under Wayland right now but can easily be misunderstood as "we have no alternative to Wayland".
The author also mentions X11 sucked in many ways and that this transition also is a moment to rethink what proper accessibility should fulfill.
holowoodman · 2h ago
Wayland is a perfect example of the second system effect and the sunk cost fallacy. X11 had problems, but instead of fixing them, developers threw the baby out with the bathwater, designed something completely byzantine and weird. Time was invested, so no stopping now or ever. The design of wayland introduces more problems than it solves, only by plastering over with yet another extra protocol that you have to implement in addition to wayland you might regain some lost functionality. Or paper over a design bug that will never be fixed.
Wayland is a dead horse. Made edible by sufficient fermentation and mobile towards the finish line by declaring the rot spreading over the line to be a victory. That Gnome just now gains parts of the functionality it had in X11, years later, while still being actually behind X11, while being an incompatible mess that leaves behind all other desktop environments to the detriment of the Linux ecosystem as a whole isn't actually a victory. Its the victory of the slightly-less-ruined after a devastating war.
ChocolateGod · 1h ago
> X11 had problems, but instead of fixing them
You can't fix a protocol that simply isn't designed for how modern graphics hardware works.
Both macOS and Windows have upgraded their display stacks over the decades, but it was seamless because unlike Linux, nearly all applications dynamically link the system library which they can upgrade. Linux is late to the party here because everyone wants to make their own toolkit.
X was designed for multiple remote terminals receiving drawing commands over a network, not locally hardware accelerated graphical interfaces and functions that rely on close coordination between the hardware and display server (e.g. hardware planes, vrr, hdr).
Fixing X would require a new protocol to the point that it isn't X anymore, aka Wayland. There are arguments that not having a reference display server has led to problems though.
holowoodman · 5m ago
Wayland also doesn't even remotely resemble anything that would be fit to talk to modern graphics hardware. DMA buffers and DRM (direct rendering manager, not the digital restrictions management) are an afterthought, a separate protocol that is not even all in stable yet. Vulkan usually doesn't work. Latency with Wayland got worse and won't get better because "frames have to be perfect". Tons of unnecessary blitting and latency be damned. All while actually tearing in Wayland is as bad as in X11 here.
Fixing X would require a protocol that is mostly X, but of course incompatible because you have to rip out some protocol bugs. But Wayland isn't X minus the bugs. Wayland started as a little bit of broken bitmap-pushing and a whole lot of hot air. And even with tons of extension and auxilliary protocol development, multiplied by tons of unnecessary reimplementations in tons of compositors, it isn't even where X11 was when Wayland started. Wayland fixed nothing yet, broke a lot, fragmented the community, brought pain and misery.
vidarh · 1h ago
I'm sorely tempted to take the backend of a Wayland compositor and write a new X server on top of it, with a focus on deprecating everything not actually used by modern X apps that don't have alternatives, which would be a lot.
I bet you could benefit from quite a bit of the Wayland compositor work on modernising the lower levels, and end up with something much simpler than current Xorg without ditching much compatibility.
elsjaako · 1h ago
I think XWayland is basically an X server that supports Wayland. It is based on Xorg though. But if you really think it has a bunch of features nobody uses, you could try to delete those simplify that way.
Or am I misunderstanding what you want to do?
vidarh · 1h ago
I don't want an X server that supports Wayland. I want a leaner, simpler X server without Wayland.
EDIT: To clarify, the reason I mentioned Wayland compositors is that it'd be an opportunity to pick a low-level rendering backend that has been written from scratch without the baggage of Xorg.
The "good parts" of X that modern apps actually use are comparatively simple compared to the low level bits - the protocol is trivial-ish, and you can get 90% there by implementing a small-ish subset of the protocol.
Joker_vD · 1h ago
> designed something completely byzantine and weird. Time was invested, so no stopping now or ever. [...] is a dead horse. Made edible by sufficient fermentation and mobile towards the finish line by declaring the rot spreading over the line to be a victory.
This applies perfectly well as a criticism of X11, you know.
Spivak · 1h ago
Do you mean dbus as the other protocol? Because that's an intentional choice to separate out the protocol for drawing windows and responding to events and "desktop stuff" that's not related to being a window on the screen. They're not plastering over anything, that stuff is intentionally out of scope for Wayland.
The advantage is that anything can use the desktop stuff (cli tools) just by talking to dbus instead of having to be a wayland client despite having no windows.
holowoodman · 18m ago
Tons of stuff aren't in wayland that are actually graphics and window related. Wayland just forgot about it, then later on people realized that their design was far too primitive and simplistic.
DMA buffers, color management and pixel formats, scaling and DPI, image and video capture, tons of keyboard and mouse related things, all initially forgotten, now incompatible extras that are inconsistently implemented, frequently broken and forever in beta/staging/unsupported hell...
Spivak · 2m ago
If you mean what Wayland literally calls "staging" it means that compositors should adopt it now, it doesn't mean pre-release. Once multiple compositors implement the protocol it can become stable.
mkesper · 1h ago
People downvoting my TLDR and all that nonsense about XLibre on top is making me sad.
- Adding hotkeys
- Replacing all my utilities that involve screenshot + OCR
- Making sure Orca works to some extent (low expectations here, but I need some of it to work)
- Reversing the gamma ramp
- Screen magnification
I have mapped out some approaches to most of these, but I full anticipate one or more to be show-stoppers or items I have to attempt to implement from scratch. I'm looking at 100 hours of work, minimum, to make this switch, and am basically just left out in the cold to figure all these workflows out under more hostile circumstances. It's also a chicken and egg, since I need to bootstrap into the new environment without any of my old tools working.
It's great that GNOME is taking some of this seriously, but they're forcing a very difficult transition, and it's frustrating that they think accessibility is in a usable state, or that we're low prioritiy enough to not matter. I'vbe heard the word "edge case" used a lot, it really stinks to be in a category where your entire computer use and professional career are considered an edge case.
It sounds like this actually is supposed to work? At least on GNOME?
Never change a running system.
The fact that only Gnome kind-off supports basic accessibility on wayland already shows what a giant failure wayland is.
E.g. you now use the wayland calls instead of x11 calls
They did that via an out-of-band D-Bus protocol, rather than going full Wayland. I'm all for keeping D-Bus around for backwards-compatibility (lots of things use AT-SPI2, and I certainly don't want a repeat of the CORBA -> D-Bus migration), but Wayland's AT support should be first-class, not relegated to proprietary GNOME extensions.
Per Matt Campbell's article https://blogs.gnome.org/a11y/2024/06/18/update-on-newton-the..., this decision has something to with security:
> Assistive technologies or other accessibility clients currently connect to the compositor through a D-Bus protocol, defined in the Mutter repository linked above. By exposing this interface via D-Bus rather than Wayland, we make it easy to withhold this communication channel from sandboxed applications, which shouldn’t have this level of access.
It's surprising to me that security would prompt the push to D-Bus. Wayland's design with the compsitor as the message bus center was built to center security in the architecture, to make the compositor the arbiter of data flows. I'm struggling to picture what the issue was here with sandboxed applications.
Maybe they don't know but some of us love them and have keyboards which have an em-dash/en-dash key or use an OS where they are easy to type.
In Vim, the digraph is ^K-M.
Wayland is a dead horse. Made edible by sufficient fermentation and mobile towards the finish line by declaring the rot spreading over the line to be a victory. That Gnome just now gains parts of the functionality it had in X11, years later, while still being actually behind X11, while being an incompatible mess that leaves behind all other desktop environments to the detriment of the Linux ecosystem as a whole isn't actually a victory. Its the victory of the slightly-less-ruined after a devastating war.
You can't fix a protocol that simply isn't designed for how modern graphics hardware works. Both macOS and Windows have upgraded their display stacks over the decades, but it was seamless because unlike Linux, nearly all applications dynamically link the system library which they can upgrade. Linux is late to the party here because everyone wants to make their own toolkit.
X was designed for multiple remote terminals receiving drawing commands over a network, not locally hardware accelerated graphical interfaces and functions that rely on close coordination between the hardware and display server (e.g. hardware planes, vrr, hdr).
Fixing X would require a new protocol to the point that it isn't X anymore, aka Wayland. There are arguments that not having a reference display server has led to problems though.
Fixing X would require a protocol that is mostly X, but of course incompatible because you have to rip out some protocol bugs. But Wayland isn't X minus the bugs. Wayland started as a little bit of broken bitmap-pushing and a whole lot of hot air. And even with tons of extension and auxilliary protocol development, multiplied by tons of unnecessary reimplementations in tons of compositors, it isn't even where X11 was when Wayland started. Wayland fixed nothing yet, broke a lot, fragmented the community, brought pain and misery.
I bet you could benefit from quite a bit of the Wayland compositor work on modernising the lower levels, and end up with something much simpler than current Xorg without ditching much compatibility.
Or am I misunderstanding what you want to do?
EDIT: To clarify, the reason I mentioned Wayland compositors is that it'd be an opportunity to pick a low-level rendering backend that has been written from scratch without the baggage of Xorg.
The "good parts" of X that modern apps actually use are comparatively simple compared to the low level bits - the protocol is trivial-ish, and you can get 90% there by implementing a small-ish subset of the protocol.
This applies perfectly well as a criticism of X11, you know.
The advantage is that anything can use the desktop stuff (cli tools) just by talking to dbus instead of having to be a wayland client despite having no windows.
DMA buffers, color management and pixel formats, scaling and DPI, image and video capture, tons of keyboard and mouse related things, all initially forgotten, now incompatible extras that are inconsistently implemented, frequently broken and forever in beta/staging/unsupported hell...