Wayland Isn't Going to Save the Linux Desktop
dudemanguy.github.io
dudemanguy.github.io
If Wayland is the future of the Linux desktop, it would seem that there will be one true reference compositor (GNOME's Mutter) with a number of other projects struggling to adapt to the various gaps left by Wayland's incompleteness.
For example, screen sharing on Zoom works with GNOME Wayland but not the other compositors because it targets a GNOME API. If the Linux desktop starts to fracture, what's the incentive to bring support to your less common WM/compositor?
It's completely unlike the traditional Unix/X11 model-- here's an entire suite of toolkits and software, and you can pick best-of-breed. If you want to style it all to look similar, tooling exists. If you want your word processor to follow GTK conventions and your web browser to look like Motif, more power to you.
I feel like the original "desktop" model was to provide a basic subset of software with a consistent look and feel-- more or less getting you to feature-parity with the pack-in software in a Windows 95 install. It's realistically the upper bound on what can be offered.
If you go bigger-- as GNOME is doing by hitting the windowing infrastructure itself-- you're asking to support and rebuild the entire world in your image. You also create a hostility with the rest of the universe. I've tended to avoid GNOME/KDE related utilities because I don't want to turn "oh, here's one cool package I want" into 45 minutes of pulling an entire desktop environment down to support it. And that's with abundant resources to spare-- if I was fitting stuff on a first-generation Raspberry Pi with a tiny storage card, it's a complete showstopper.
The problem is not only people think on these projects like "community projects", but the developers that build software upon GTK and the GNOME stack, because they know GNOME Foundation doesn't not care about 3rd party devs.
The Apple way tries to make the DPI change transparent to the application, resizing behind the hood when necessary, and only using integer scales, requiring increased-size assets that are used on-demand.
Windows allows the program to opt into handling the high DPI by itself, obviously producing precise behavior in that case. For compatibility, it will either scale smaller windows up framebuffer-wise, or increase the font size, using the limited resolution independence it has had from the beginning.
In the end, Windows' behavior turned out to be less error-prone. For a little while it seemed like it would be a disaster, pushing the onus onto the developers, but it turned out fine in the end. Personally, I didn't think just making a clean separation like that was the right idea, but I was proven wrong.
Wayland uses the MacOS approach. It allows the program to provide increased resolution buffers at integral scales. This forces fractional scales into framebuffer scaling. The application can't output at a pixel-precise level.
In X11, both of the popular toolkits, Gtk and Qt, simply take the DPI provided and draw widgets bigger, kind of like Windows. It isn't perfect. For example, Gtk only really "supports" integral scales, but themes have been doing dynamic resizing forever, so tweaking the DPI can get perfect fractional sizing aside from some line widths. Older theme engines on Qt might also have a few glitches. But I'm convinced this is definitely the way to go. You're not hiding the fractional DPI from the program. It can be as sharp as it wants.
There is work underway[0] to implement a protocol (wp-fractional-scale-v1) to support fractional scaling as well, which in combination with wp-viewport will allow fractional scaling without framebuffer scaling. Experimental support exists in wlroots, sway, kwin (KDE), and Mutter (GNOME).
[0] https://gitlab.freedesktop.org/wayland/wayland-protocols/-/m...
It follows the same forced adoption tactics than systemd.
People don't use it because it lacks many features compared to X and other implemented features do not work as good as on X.
So what do they do? They make Wayland, which is incomplete and beta quality, the default graphic engine of GNOME, which is the default desktop environment of 90% of Linux distributions.
And when people complain about this, the only thing they say is X is dead, Wayland is the future.
> Wayland's lack of feature parity with Xorg cripples it.
This is something I've bible-thumped Wayland advocates over for years. wlroots is dead-on-arrival in the eyes of smaller DE/WM devs. Nobody wants to update their entire system's display server, and then be forced to rewrite entire portions of userland and the OS just to get their desktop working similarly as it was on Xorg, with less hardware support.
That's a problem. It's something that Wayland advocates will defend as "a work in progress", but when is that work due? Wayland has been in development for nearly 10 years now, and with each passing year it increasingly feels like this is a scam designed to bootstrap the Mutter shell. Face it: Sway works but it's hardly a DE, and KDE is functional on specific hardware and lacks several features. Wayland is a failure for everyone but the GNOME foundation, who I think intended this as a power-grab. In reality, we're left with an XKCD-worthy "two competing standards" situation.
People often cite a fractured desktop as the reason why Linux never takes off. Well, it's projects like Wayland that cause the worst fractures. We were promised a better Display Server, and what we got doesn't even compete with what we had in MacOS Sierra. I hate to be vitriolic towards software, but it's really pathetic.
I don't see any alternative in sight and can't seem to see a way back to X at all.
Ubuntu even tried to switch to wayland two times and had to revert their decision.
I'm not really sure how people in their right mind say wayland is good. Maybe I'm just doing something wrong here, but the experience of installing and forgetting is non existent with wayland, it feels like a clunky experimental wannabe X alternative.
Mind you, this was a couple months ago on arch Linux with sway.
Better to test with a WM that's more compatible, even GNOME would work better in your scenario.