Wayland Core Protocol Is Tailored Only for Gnome and That’s Not a Good Thing
news.itsfoss.com
news.itsfoss.com
- the window manager - the hotkey daemon - the compositing effects - the windowing server - screen reading tools - screenshots - screen casting
magnifying glass tools global dictionary tools etc etc etc everything. Wayland's design makes it impossible to write a portable hotkey daemon for instance. Supposedly for "security reasons.” Wayland is a GNOME dev's dream, it kills the ability of people to control their own system. If you're actually excited for Wayland you either thoroughly misunderstand what it brings and just like it because it's new or you're a GNOME-lover who hates customization.
And don’t get me started on the security argument. If someone has arbitrary code execution on your machine, you’re already toast. I’ve yet to see an example of malware that can use xlib to read keyboard inputs on X (the supposed vulnerability Wayland was made to stop) but can’t just write some LD_PRELOAD hook to .profile or bashrc to make the compositor keylog on Wayland too. Is there a real world example where this supposedly great isolation that is easily circumventable actually prevented any security issue?
None of this is to say that X.org isn’t the accumulation of 30 years of cruft and technical debt but I don’t think Wayland is the right alternative.
The fact is, given that a compositor must necessarily handle display and input, it is much more convenient (and secure) to centralize display and input dispatch in a single process. This is also how X11 works, except it dispatches all display and output to any process that asks nicely.
Personally I also still use X11. Mainly because KDE on Wayland is currently broken on FreeBSD. And I'm not in a hurry anyway.
Is for me too on Linux. On both a variety of Intel and Nvidia GPUs. On a variety of distros. And everytime I ask around, I'm told it works for others, so it must be me. Everytime forcing X11 solves all my problems.
To be honest, last time I tried KDE on Wayland was a year ago, so perhaps it works now. Then again, so many years have passed where it turned out it didn't, that I'm not particularly keen to try.
Some X window managers are a few hundred lines.
Most of the wayland fud is either seriously out of date, mistaken, or malicious.
Here's [1] a tutorial on writing a compositor with it!
[0] https://gitlab.freedesktop.org/wlroots/wlroots
[1] https://drewdevault.com/2018/02/17/Writing-a-Wayland-composi...
Funny how this isn’t the case for many other OS. My system isn’t toast when I load a website or install an app on my phone.
There are a lot of pieces that have to fall in to place and any one on its own is not useful but they will eventually build up something secure.
Whatever good things Wayland's been up to, it's been historically dismissive if not outright hostile to backward compatibility and integration, and that's not acceptable. I keep hearing, well it's what the old X people want, and I don't care.
Similarly, don't come with the goofy "It's open source so you don't have the right to criticize." False false false. That wrongly implies it's a bunch of plucky happy-go-lucky volunteers doing this out of the kindness of their hearts. Nope. It's companies with agendas and they need to do better.
(Let's leave aside the fact that Nokia designed a beautiful mobile interface built on X, in-plane entertainment systems have been running on Linux and X for over a decade, and X servers were historically implemented on 286 hardware for use as dedicated X terminals.)
What I can say is Wayland was developed and promoted with a GNOME developer mentality, which is a combination of:
* CADT (jwz dot org slash doc slash cadt dot html)
* What you're using sucks! Here, adopt my shiny new thing to make your environment not suck! (literally dates back to GNOME's inception, see: https://qodsec.blogspot.com/2004/06/unix-lets-make-unix-not-... )
* We've built a solution for what we have determined to be the common use case. Why should we care about your obscure, niche use case that absolutely nobody (that matters) uses?
With a heaping side of "it's from Red Hat, so it's the standard" and "it's open source so you don't have the right to criticize". Basically, what happens when young, eager developers are given the opportunity to implement and potentially standardize core desktop features (and thus build what they think is "a better Windows" or "a better Mac") but don't have the advantage of experience of previous software designs in the Unix/Linux workstation space and their benefits and drawbacks.
If people keep staying on X11, I suspect that the next phase will be "refusal to adopt Wayland is a strong indicator of racism/misogyny/homophobia/transphobia".
Source: I was active in KDE development around the time when the Wayland core protocol was defined, and followed the discussions on the side lines.
There are still some missing pieces, but the situation isn't disastrous anymore.
Just like how pipewire did all that pulseaudio was trying to achieve, and some more, while also fixing all the rough issues.
Iteration seems to be the key to perfection
I think the fact that Wayland isn’t a program is a big part of the problem. The dominant Wayland compositor in use is gnome-shell, and it’s obviously extremely GNOME centric. With X11, the interaction between clients and gnome-shell was intermediated by Xorg, so, if gnome-shell wanted to support Xorg (which it did), it had to support relevant features of Xorg. Xorg supported server side decorations, so gnome-shell did too.
But gnome-shell as a Wayland compositor supports whatever set of features it likes, and clients that require additional features don’t work on GNOME, so they largely don’t get written, so there is little pressure on gnome-shell to support them. A Wayland competitor won’t help here. An alternate Wayland server that sits in front of gnome-shell might, but it would be a mess.
Ultimately the best solution would be to break GNOME’s mindshare dominance. If enough users demanded something better/different, then IT departments and sales would notice, and GNOME would need to either catch up or get left behind.
All of my struggles with wayland were adoption. It’s a struggle to force every older electron app to use wayland via CLI flags because the authors, even big ones, haven’t bothered.
I guess there are some unsupported things — like screen control. (If you wanted to control another person’s screen over a video call, it’s unsupported in wayland.) But it also actually sandboxes a lot of things which should be (like screen control!)
Adoption would be a problem with a different system as well, unless it was fully compatible with X. Which defeats at least part of the problem wayland solves.
Wayland has it's origins in members of the X11 developer team, and AFAIR Kristian Høgsberg is the sole author of the original protocol spec.
At present the protocols and extensions are discussed and merged by a group that, as far as I know, includes GNOME developers, but they are not in majority nor can they do as they wish overruling the other stake holders (wlroots, KDE, etc).
Now, to the main premise of the article: plenty of applications (at present) make use of client decorations vs. compositor decorations, and it can be easily experienced with Chrom[e|ium] in sway, by enabling/disabling "Use system title bar and borders".
I think the whole piece is a misinformed piece that builds on top of a faulty premise, and the author didn't bother to do minimal research before putting words to paper. I would expect more judgement on the part of the HN crowd instead of accepting it on the idea that conforms their biases towards Wayland being somehow "bad".
Yes that is 2002, over 20 years old.
I guess GNOME never stops being GNOME.
Isn't Redhat IBM now?
I have to use RHEL at work and since RHEL 8 the desktop experience is just painful:
GNOME 3 is the only desktop offered. Our IT team hates third-party repos, so EPEL and any chance at an alternative are right out.
I tried to use GNOME 3, but I really do not understand what the designers were thinking and how they intend for it to work.
How do I minimize a window that I do not want in the foreground? There are no buttons that seem to do this without using tweaks or extensions.
When using two or more monitors, why does only one monitor switch to a different virtual desktop while the other does not?
Trying to use GNOME 3 is frustrating and I would rather use pratically anything else (Windows, MacOS, KDE, CDE, Xfce, WindowMaker, Blackbox, Fluxbox, etc.) because at least they would follow some of the last 40 years of desktop environment conventions that GNOME 3 seems to have completely discarded.
> How do I minimize a window that I do not want in the foreground?
i use Alt+X for this, mapped via Settings --> Keyboard --> Shortcuts --> Windows --> Hide Window
This is GNOME, not ratposion WM (https://www.nongnu.org/ratpoison/).
There should be a way to minimize using the mouse.
No. By default there are no maximize and minimize buttons. They were explicitly removed:
https://digitizor.com/gnome-3-maximize-minimize-buttons/
You can add them back with gsettings changes or "tweaks":
https://trendoceans.com/how-to-get-minimize-and-maximize-but...
Make sure an allocation of your frustration is pointed at this.
Gnome tweaks should be a default package. Is it not in an accessible repo for RHEL?
I just switched from Pop OS to Fedora 36 on my laptop and am getting the hang of pure GNOME 3 quickly. Other than Guale not working for some reason, Vivaldi and terminal and python run just fine. Hotkeys are abundant.
Agreed, but I have little control over IT policies. Third-party repos are strictly prohibited unless there is a compelling reason and they are blessed by IT.
>> Gnome tweaks should be a default package. Is it not in an accessible repo for RHEL?
Tweaks help, but it is still terrible compared to the customizations that GNOME 2 offered "in the box".
Without discussing the merits of GNOME vs others, is your company prepared to pay twice for the RHEL license if they provide official support for both GNOME and KDE? Supporting more environments doesn't come for free.
No, Red Hat is like Microsoft because they made the same mistakes with GNOME 3 that Microsoft made with Windows 8--they gave designers free reign to do whatever they wanted and did not listen to user feedback.
The changes from GNOME 2 to GNOME 3 were jarring enough for many users to abandon it (https://www.zdnet.com/article/linus-torvalds-finds-gnome-3-4...) and for the MATE fork of GNOME 2.
Forcing those jarring changes on all users was a mistake:
https://www.tomshardware.com/reviews/fedora-16-gnome-3-revie...
https://www.reddit.com/r/linux/comments/8kn9t4/why_does_gnom...
https://www.datamation.com/open-source/the-gnome-3-meltdown/
https://www.quora.com/Why-do-so-many-people-hate-GNOME-3?sha...
https://news.ycombinator.com/item?id=16869157
>> Without discussing the merits of GNOME vs others, is your company prepared to pay twice for the RHEL license if they provide official support for both GNOME and KDE? Supporting more environments doesn't come for free.
Probably not, but given the choice I would select KDE over GNOME 3 simply because it offers a more customizable user experience that does not require "tweaks" and "extensions" to get the desktop setup that some users want.
What's next? Removing Emacs and Vim and only offering GNOME Text Editor? Supporting more text editors doesn't come for free.
Remember that Ubuntu spurned GNOME for a long time because they had their own monoculture issues.
Fuck Wayland.
Fortunately Xorg works splendidly.
Why are you angry on wayland ? Because they try to make things better for normal people ?
I was using until recently Sandy Bridge platform, and It works fine. I am not expecting that it would be supported forever. There is a lot of performance and maintainability left on the table because of support for old devices. If anything, I wish for Linux world for more aggressive deprecation policy.
> People should not have to throw out otherwise working hardware because a bunch of nerds who weren't bullied enough in high school don't feel like putting in some effort.
You can just leave Linux community, nobody will miss you.
(I knew someone would have mentioned the modern DOS emulation layers and missed the point.)
"Hey, so decades of work has gone into Window Managers and Desktop Environments. How will we preserve those going forward with this?"
And the answer appears to have been "Eh, we wont. Maybe later? They can just rewrite them all or something." Madness.
Well, I guess theoretically that might be true...
The inconvenient truth is they are working towards a cohesive desktop experience, even supporting mobile. X11 will still be here, but you can't blame the devs for wanting to move on.
Operating systems should be designed for all humans, not just programmers. Gnome seems to be the only DE that cares about accessibility. All of your settings and extensions mean nothing to someone who needs all of their apps to work with a screen reader.
This article and these comments suck. No one wants to contribute code, just opinions. Reminds me of the systemd FUD.
You can fork, hack, make your case with Wayland, maybe it gets merged, maybe you just maintain your own fork. These criticisms by people who aren't going to contribute anyway are getting tired.
I find myopic that GNOME and KDE are working towards a cohesive user computing experience starting from "one-size-fits-all widgets" and data as an afterthought. Red Hat freedesktopers aren't designing anything for all humans, they always tire themselves on some all-encompassing project then adapted for two niche use-cases that generate revenue.
But I don't care no more, I'm using Xorg and Xenocara, runit, will probably going to hack on Arcan someday.
Fixing X11 is basically shaving an infinite number of yaks. Wayland is the X11 developers trying to bound the problem to a finite number of yaks. They can only do this by punting everything they possibly can out of the system.
To be perfectly honest, the Wayland developers don't have an option.
Screenshots are a continual complaint--but it is by no means settled as to what entity and mechanism controls the security and permissions behind that and how. Punting window decorations to the clients is annoying--but any other choice likely means that you need a full text rendering system in your window manager. And if you want an "interesting" task, go help both the X11 and Wayland devlopers deal with all the race conditions and problems around the "simple" task of integrating with Vulkan and getting/presenting a surface and handling the swapchains (extension VK_KHR_surface, VK_KHR_swapchain, VK_KHR_xlib_surface, VK_KHR_wayland_surface)--lots of bugs exist and have since 2015. Try tackling the sequence of events around "resize"--you're in for an eye-opening experience.
Yet, even after the Wayland guys atomized this stuff, nobody in the open source software world is picking up the work. Maybe the DeadRat guys are rejecting submissions, but I suspect it's more that people simply aren't willing to grind through this stuff. It's a bunch of detailed, system-level programming with LOTS of gotchas all over the place.
Dunno. Maybe they should say that they are rewriting it in Rust. That might actually attract some people willing to put in work.
Why should we let GNOME keep us from moving on to newer tech?
Edit: In case you want to know why X11 is janky and bad, check out this architecture overview: https://wayland.freedesktop.org/architecture.html
So I decided to just stick with X and not bother with Wayland until at least 2023-2024, and of course I would like X to still work in the meantime and it probably will.
When Wayland was born you couldn't do anything to prevent that, now we have like 6 sandboxing/light-virtualization options for Linux, so I suspect that by containerizing applications in Xorg you could prevent them from keylogging easily. That too right now is mostly crappy and fragmented in Linux with the AppImage Snap and flatpak circus.
And no, I don’t think you can really do that with x11. There was Trusted X11 long time ago, but I don’t think it was practically useful - as in, maintainable and sustainable.
As far as I understand sandboxing in Linux is “70% there” - it will get there eventually, but for now the 30% hole makes it not practically useful. It’s not bad at pretending it’s doing something though, and for (many? most?) paying customers that’s enough.
What a ridiculous argument. In X11 you don't even need to preload a library to do it is the bloody point.
Nor will I give a shit about Wayland until OpenBSD forks it, audits it to within an inch of its miserable life, and incorporates it into its base distribution to replace Xenocara.