Why I embraced Wayland
Some of the folks that knew me from around 2014 know that I wasn't impressed with Wayland and really didn't see the point of it. X11 worked well enough for me and I didn't want to switch to something else, it felt like reinventing new stuff just for the sake of it to me (like systemd and pulseaudio; the fuck are those doing on freedesktop.org in the first place…). And I disagreed quite badly on it, sorry for folks related to wayland. Hopefully less and less folks will do this "politically conversative" opinion and actually wonder about the reasonings.
The motivation was because using X11/XOrg (specially with NVidia) gave me some years of:
- applications like Firefox shitting all over the desktop at times, leaving ghosted areas;
- all applications being able to send any and receive all keyboard+mouse input with no real solution against that (I know XTerm has some option to steal all keyboard input, didn't work for me);
- non-orthogonality of input device settings; XOrg allows to have a different settings on each and would require managing hotplug events but XOrg tools (
xmodmap(1), …) are done for a display server that would support only one layout setting and manage events by itself
- display configuration hell, I know how to use
xrandr(1)for some arcane things now (including trashing the concept of VTs, thanks linux) but what a mess and of course no support for hotplugging (which is a mess unless you use a tiling window manager like XMonad);
- normal applications being able to trash your setup (ie. multi-monitor to a single display at 640x480) and no restoring if they crash down or don't care;
- applications often behaving weirdly when a tiling window manager resizes them automatically;
- still having this software-gore bug where moving a window on top of another leaves some of it frames behind, I love having that bug after 2020 when it should have been fixed well before 2010;
- some games window just disappearing a bit after initialization (spawns a blank window and immediately goes away), probably related to a missing quirk/extension but haven't found wtf was happening;
- An absolute horror for even just basic screen locking/saving.
And that made me just done with X11 and it's design of being similar to a Unix where everyone is root… so basically not a Unix.
If you find yourself saying that X is the Unix way: What one thing is X doing and what is it doing well?Daniel Stone
By the way, if you're that kind of people which is like "X11/Xorg never threw me a bug" you're likely just ignoring the elephant in the room in the first place or not seeing it as a bug (this is why I usually don't care about statements like "$thing just works for me" and "$thing never broke for me", there is high chances of it being delusional or clueless).
Plus with actually informing myself about the wayland protocol design rather than just seeing that you can rotate windows in weston (which is labelled a reference compositor but should be taken as a demo) and that GNOME is doing it's normal thing of trashing everything in it's way, specially good things like an awful teenager.
But at some point I gave Sway an honest try on my NoVidya-plagued laptop, the one where the screenshot at the begining of this article comes from and I actually ended up with less bugs, it was still a mess because of NVidia having trashed the proprietary driver so much that nouveau, an open-source garage-hacker alternative that they're unfriendly with worked better, you know the adage: Fuck You NVidia.
At least now that I replaced that badly aged laptop (Spectre/Meltdown was the final blow) with a full-AMD one (yay, no proprietary drivers), I don't have X11 kind of issues nor NoVidya kind of issues.
Oh and my phone already was using Wayland (in fact it doesn't have X11) since 2015~2016 as I switched to SailfishOS because Android is a system that loves to trash itself. I maybe just didn't knew or ignored that fact as it's not as desktop/laptop. Wayland works really well on it btw, and X11 never made sense to me on handhelds, which is yet another point for Wayland.
All that said:
- I have yet to fully switch to wayland on my desktop, mostly because of quirky things like some games (they are really the worst…) and of course VR is quite alpha but has the potential to work really well but so far the patches got a bit stuck. Launching Xorg for VR is good enough for now (but it's very unstable);
- XWayland works well if I need to launch an X11 application, much better than stuff like Xephyr where it always failed with my keyboard layout;
- I have done the quite crazy thing of throwing all of X11 (including things like
libX11.so) out on my laptop, it means a lack of some applications and some weird shenanigans, like having to replace
libGL.so(OpenGL linked with X11) with
libOpenGL.so(window-system-agnostic) but sadly it's from GLVND which has yet to appear on systems like FreeBSD so it's messy in some buildsystems. But overall it works pretty nicely;
- I have yet to resume working on inaban, a quite psychorigid wayland compositor for controlling applications behavior (so quite the complete opoosite of X11);
- I do not expect GNOME and related projects to actually do software/standards one can trully depend on, I'd much rather bet on one of their software having a critical bug than not having one;
- I barely care for proprietary software;
- Do not expect your NoVidya hardware to work well; NVidia® is almost hostile to Linux and they're the responsible ones; be careful on picking your hardware, everyone doesn't have to support your choices.
- Wayland misconceptions debunked
- "Write a single library to handle all input devices, it'll be easy" they said… (46 minutes 53 seconds): Talk about a linux-induced burden but relates a bit to Wayland on Linux and FreeBSD
- The Real Story Behind Wayland and X - Daniel Stone (linux.conf.au 2013) (45 minutes 34 seconds)
- wlroots: Pluggable, composable, unopinionated modules for building a Wayland compositor; or about 50,000 lines of code you were going to write anyway.
- sway: i3-compatible (with few extras) Wayland Compositor
- wio: Wayland compositor for Linux & FreeBSD which has a similar look & feel to plan9's rio
- hikari: Wayland compositor inspired by CWM
- Wayland Book by Drew DeVault
And yeah a lot of that list is linked to wlroots, feel free to pass on links from others, I know MATE is planning to switch to Wayland but it's still mostly for the future and I don't know how well wayland works in KDE (hopefully quite well).
Note: I usually read replies to my articles but I'm not going to bother if you're going to just throw the typical clueless wayland-hater bile one can see on internet. I will probably answer honest questions though. Hopefully that will save some people's energy and time.
Fediverse post for comments, published on 2021-03-07T00:35:00Z, last updated on 2021-03-08T02:55:00Z