In response to Wayland Breaks Your Bad Software
I say that the technical merits are irrelevant because I don’t believe that they’re a major factor any more in most people moving or not moving to Wayland.
With only a slight amount of generalization, none of these people will be moved by Wayland’s technical merits. The energetic people who could be persuaded by technical merits to go through switching desktop environments or in some cases replacing hardware (or accepting limited features) have mostly moved to Wayland already. The people who remain on X are there either because they don’t want to rebuild their desktop environment, they don’t want to do without features and performance they currently have, or their Linux distribution doesn’t think their desktop should switch to Wayland yet.
X11’s core design is very bad for normal desktop use, though. You’ve got all of these pluggable resources that can run on different computers, attached through pipes or network connections, with tons of extensions and trickery to get things like hardware acceleration and touchpad support working.
There are downsides to Wayland, but X11’s design plain sucks. It was designed for timesharing mainframes, not for a desktop computer. Running X11 on a desktop is like running the Mars rover firmware in your car: with plenty of extensions and modifications it’ll work wonderfully, but you’re not getting the most out of it because the core design principles don’t match up with the hardware you’re running.
This is not an insult to the people behind X11. The fact they’ve got all of these modern features to work at all is an impressive accomplishment.
I feel that the biggest mistake of X11’s protocol design is the idea of a “root window” that is supposed to cover the whole screen.
Perhaps that worked greatly in the 1990s, but it’s just completely incompatible with multi-displays that we commonly see in modern setups. Hacks upon hacks were involved to make multi-displays a possibility on X11. The root window no longer corresponded to a single display. In heterogenous display setups, part of the root window is actually invisible.
Later on we decided to stack compositing on top of the already-hacky mess, and it was so bad that many opted to disable the compositor (no Martha, compositors are more than wobbly windows!).
And then there’s the problem of sandboxing programs… Which is completely unmappable to X11 even with hacks.
Multiple displays work fine. The only thing that needs to be drawn in the root window is attractive backgrounds sized to your displays I’m not sure why you think that is hacky or complicated.
Multiple displays only work as long as you have identical resolutions and refresh rates. Good luck mixing monitors with different scaling factors and refresh rates on X11.
I run multiple refresh rates without any trouble, one 165hz monitor alongside my other 60hz ones. Is that supposed to be broken somehow?
This wasn’t true in 2003 when I started using Linux in fact the feature is so old I’m not sure exactly when it was implemented. You have always been able to have different resolutions and in fact different scaling factors. It works like this
You scale your lower DPI display or displays UP to match your highest DPI and let X scale down to the physical size. HIGHER / LOWER = SCALE FACTOR. So with 2 27" monitors where one is 4k and the other is 1080p the factor is 2, a 27" 4K with a 24" 1080p is roughly 1.75.
Configured like so everything is sharp and UI elements are the same size on every screen. If your monitors are vertically aligned you could put a window between monitors and see the damn characters lined up correctly.
If you use the soooo unfriendly Nvidia GPU you can actually configure this in its GUI for configuring your monitors. If not you can set with xrandr the argument is --scale shockingly enough
Different refresh rates also of course work but you ARE limited to the lower refresh rate. This is about the only meaningful limitation.
It’s the fact that the root window is a lie.
…What? The root window was supposed to mean “the whole screen”. It no longer does - that’s the lie. Then people created XRandR to help work around it - that’s the hack.
The people behind X11 agree and that’s why they founded Wayland.
I’m aware of the overlap, but some people take any criticism of X11 as some kind of insult to the X project and the people behind it.
Sure but the people behind X11 are the same ones behind Wayland so when the develpers didn’t think it was worth the time to fix X11 and it would be better to start a new project to fix the issues. How can end users think we should just fix X11 make anysense? I think their biggest mistake is they should have called Wayland X12 or something like that.
I think it’s a consequence of Wayland still lacking important features. Nvidias’s bullshit doesn’t help either.
X11 has decades of tooling that doesn’t work on Wayland anymore. If you’re one of those people who scripted their entire OS together with xdotool, you’ll probably want X11 bugs to be fixed rather than try to learn how to do the same things in Wayland (and failing, because Wayland doesn’t do a lot of things X11 does).
To be honest, I don’t think anyone things of X11 as something that needs to be fixed. It works, it doesn’t have any problems, it’s just there. Crashes and such may need looking after but the core X11 tools are very stable. I think it’s the systemd situation all over again, where the mere suggestion of change is enough to set people off.
Wayland 1.0 was released in 2012, though.
Yes, but Wayland just doesn’t implement some features that X11 supports. Virtual pointer/keyboard events for example, you’ll need to go through system wide inputs with elevated permissions. Global hotkeys are also a challenge for third party tooling.
That’s not necessarily a bad thing, but it does break some workflows.
11 years after Wayland 1.0 and 7 years after Gnome 3.22 were released.
Yes. 11 years after the majority of Linux users didn’t notice anything and stuck with X11, because X11 isn’t broken.