Wayland vs. X – Overview
wayland.freedesktop.org
wayland.freedesktop.org
I can run multiple monitors with one of them rotated. When I tried that with X I got lots of juddery tearing.
I can take screenshots and share my screens via video calls. But everyone says it doesn't work due to security.
I have fractional scaling and it doesn't seem to burn out my CPU or battery. Yet that's frequently listed as a disadvantage.
What do I need to do in order to make Wayland as bad as everyone says it is?
Regarding the rest, I run an Nvidia laptop under Wayland since early 2022 and it's been working flawlessly. It's true that I'm using one of the cleanest, most forward thinking distros out there: Fedora. On Ubuntu it had way more issues than on Fedora, though.
I am not sure what happened in the Ubuntu case, but maybe you guys should try Alma, RHEL or CentOS?
If Pop works well enough, power to you! I just believe it's not a standard in the industry.
This is on fresh installs of Ubuntu 22.04 and 23.10.
X11 with XFCE and i3 with picom works perfectly. It's blazing fast, has no tearing, never crashes, uses next to no resources, has no bugs and runs everything. I even use ddccontrol to change my external monitor's brightness.
Maybe that's what they're referring to?
(At this point, I'm looking for anything that's stable and still uses a normal init + x11, FWIW. I wouldn't consider Fedora, since it's owned by IBM, and Red Hat's new business model under them is "systematically violate the GPL and see if we can get away from it".)
The symptoms you describe almost sound like a dying 3D graphics card (or 3D graphics card with misconfigured drivers). I wonder if Wayland is requiring the 3D layer to do its compositing and other window engines don't?
They also accept dma-buf handles from clients, so if other software on the system does use gpu, the compositor has somehow to do its composition, and zero-copy if possible.
Wayland is probably much better than when I tried it in 2019 but all I remember is the 2019 experience. I think a lot of people are in the same boat.
Now X.org works fine for the majority of users, so for them (/raises hand) it is very hard to see the value proposition of switching to Wayland, especially if prior attempts were less than successful.
The fact that X11 development has stalled might be a plus for those that just want a stable system, are used to the limitations and don't need new features.
We will migrate eventually, likely at next distro upgrade, but there is no hurry.
Also doesn't help some people have been rather aggressively banging the Wayland drum for a long time now in a way that quite a few people find rather unpleasant. About half a year ago someone told me I "need" to switch to Wayland because programs will drop X11 support "any time now", all with a sense of glee. A quick search on https://hn.algolia.com with "Wayland by:username" showed they have been telling people that for about 7 or 8 years. Clearly that hasn't happened, so... And when they started banging this Wayland drum so aggressively there really WERE actual problems. Textbook "toxic fanboy" stuff. At some point people start filtering this sort of stuff out.
The first time I really looked in to Wayland was when "I'm tired of this anti-Wayland horseshit" article took off, which starts by comparing "anti-Wayland activism" (something which doesn't really exist as an organised force) with "anti-vaxxers, flat earthers, 9/11 truthers", dismisses anything that disagrees as "lies", and is generally just a stupid rant with a number of fairly obvious factual inaccuracies. To say this rather put me off from Wayland would be an understatement.
I'm not holding you responsible for any of that of course, nor am I saying this is representative of people interested in Wayland as a whole, but at the same time ... I do think Wayland has burned a lot of goodwill with stuff like that, and that people voted that stupid insulting conspiratorial rant to the frontpage did no one any favours – it's not just a single person who wrote that article, it's the hundreds of people who voted on it, and some of whom defended it.
Not really; in the 90s, there were many X servers, each implementing a different set of extensions. Not just for other Unices, even for Linux, you could purchase a proprietary ones.
For XFree86, it was a monolith, that you had to compile for a specific chipset. Distributions shipped with many binaries, each intended for a specific graphic card and the installer symlinked the right one for you. It was only later, that XFree86 became modular and everyone converged on it.
There plenty of chances to make good non-first impressions though.
I used to check periodically whether Wayland works better than X for me, until it does one day, and I switched.
Not everybody hold on to the shadow of a bad first impression. It’s unfair when subject to another human being, and irrational when subject to a product.
I think you just need to be less lucky tbh.
Out of curiosity, what distro do you run. I'm running Wayland pretty seamlessly right now on Ubuntu: it's not a distro I would normally choose but I cycled through 3 others before "giving in" & going to Canonical. Hardware aside, there's also a lot to be said for sticking to the mainstream software-wise; though it's certainly an oddity for me to be so limited with software-choice in the Linux world.
Games though can be a nightmare, a recent nvidia driver seems to have created stuttering across all games using X to varying degrees. (downgrading the driver fixes the issue)
On ubuntu (Kubuntu really), and as a gamer, I've seen no issues with nVidia on X, both native Linux and Steam Proton games rock on.
I tried a bunch of different configs and was able to minimize them significantly, but they were still there.
Someone on HN pointed me at setting LIBGL_ALWAYS_SOFTWARE=true which makes it stable on my "radeon" driver GPUs at the cost of some performance (e.g. moving a window that is playing video causes the entire screen to freeze only while the window is moving). That should make it pretty stable with any KMS driver (though the nouveau module still crashes on me every 10 days of uptime or so; I've never been able to figure that one out).
I always point out that all of the issues I run into with Wayland on ATI/AMD GPUs also happen with hardware-compositing on X, but I can turn compositing on X off since it's optional, but, as the figures in TFA suggest, it's a core part of Wayland. I think one minor thing that has put so many people (or at least me) off of Wayland is how many issues are dismissed as "your GPU driver is broken." Well I can't write a GPU driver, and Xorg works better with a broken GPU driver than Wayland does.
My several years old laptop with an Intel P530 runs Wayland with zero issues, to the point where I can't tell you when I switched because it was zero drama. Maybe about a year ago? There was one feature in plasma that I needed to wait on before switching, but I don't even remember which one it was.
Which is one of the biggest problems with Wayland - there isn't just one Wayland but Gnome Wayland and KDE Wayland and wlroots-based Wayland and Gamescope Wayland. What functionality is available and working and using which API varies between all of these. This includes really basic things like window decorations.
This is different from X where the core functionality is common because everyone usees X.org. If all the Wayland compositors agreed on how thing should work then multiple implementations would be much less of a problem. But they don't or at lest take ages until all but one of the NIH protocol extensions get abandoned. Some of this protocol extension zoo is hidden by applications and toolkits implementing multiple variants but even if you no longer see it as an end user this is still a cost because time spent on dealing with Gnome or KDE bs is time not spent on more useful things.
I just did this switch and found it incredibly frustrating. Simple things like, "I would like to be able to log out and return to my greeter" don't just work like they do in x.org, and it is dependent on which compositor you use.
Anecdata but I've had a LOT of issues with kde & wayland, mainly due to SDDM.
No idea. I'm using Pop OS. So whatever that uses. Gnome is the DE, I think?
So you're being upvoted to the top by praising how flawless Wayland works on an OS that runs by default on X11? :))
Aww man, I hope there's a miscommunication somewhere, like you switched PopOS from X11 to Wayland, because otherwise this is HN comedy gold.
> When I tried that with X I got lots of juddery tearing.
They said it pretty explicitly
And from my experience, there's distros that work better with X11 which is why they ship with it out of the box instead of Wayland(like Mint, EndeavourOS and Kubuntu), and ones that work better on Wayland out of the box, like Ubuntu and Fedora.
I wrote it up at https://shkspr.mobi/blog/2020/05/fix-screen-tearing-on-rotat...
Warning - you'll need to be at least a Level 17 Linux expert to understand the complexity involved.
The entire reason there's time spent on dealing with Gnome vs KDE vs other bs is that everyone wants to build and customize their own desktop. But hey, it's OSS, freedom of choice and you're free to do it but I doubt window decorations will add very much to the overhead of all those different desktops.
[1] https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests...
[2] https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests...
[3] https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests...
There's no such thing as "wayland". There are only various different waylands. A person can have an experience with X11, there's standard reference features all X have. But your experience with a single wayland doesn't really give you knowledge of how waylands work (or don't work).
But every time Wayland is mentioned on HN, it's always orange display protocol bad.
(And the better link to use is this one: https://wayland.freedesktop.org/docs/html/index.html)
To me be, the big question is not why freedesktop.org or redhat is doing all of this, they're a company and they have their needs. It is why distro maintainers have chosen to adopt those technologies(systemd,Wayland, others?), not that those options are especially bad but to me,but they really look like a clear bifurcation from the modularity and customization we used to see on the distro world.
I remember the mid 2000 and early 2010, when computing was still cultivating this cool image from the animations of Mac os Leopard and the aero style of Vista and the leader above all in the form compiz crowning Linux from far.
In the talks around Wayland vs X, the maneer Wayland proponent(not only its developer and also any linux user) dismisses critics of missing feature because 15 years later they're still not standardized or lack of composabilty between windowing and compositing is a stark contrast with the way we used to talk about free and open source software at the turn of the millennium.
We used to defend customizability and a certain form of freedom. Sure X11 lack security and should be replaced by something that works better. The Wayland shortcoming are defended in the name of security is some kind PR speak I wouldn't think I'd see in the linux world years ago. It comes as particularly bitter as other closed platform from wich we used to hear a lot corporate speak still allow apps to do more things with their own windows that Wayland does.
The fact that the same organization hosts flatpack but has not vision of how to use the capability model for Wayland really poses questions on the vision.
All in all, I wonder if things would have went more smoothly and in greater general agreement if those 15 years+ were spend make Linux work like plan 9.
Edit: typoes/syntax
> The fact that the same organization hosts flatpack but has not vision of how to use the capability model for Wayland really poses questions on the vision.
I disagree, and I'm a staunch GNOME skeptic myself. Flatpak and Wayland were both built as extensible systems from the start, and GNOME's implementation of both technologies is just one interpretation of the protocol. KDE is a good mirror example; their Wayland implementation exposes many features completely unavailable on x11, and their Flatpak permissions are integrated right in the Settings app.
Personally I don't like GNOME's approach to the desktop anymore, and I refuse to defend most of their more opinionated decisions. Those choices have a minimal impact on desktop Linux outside of GNOME though, and it more feels like Red Hat is displacing the amount of work put into keeping legacy systems alive.
What I deplore is that those customization have not made their way into at least an extension of Wayland.
And as you say, hopefully I can still use X11 when needed but I wish the more modern option would carry everything I need.
Also funny that you say it's about customizability, having a bunch of implementations of the wayland standard seems more customizable than having the one X server.
I'm not saying that I don't see the benefits of all building on a single server, but I can't say a bazaar-style development of multiple implementations and protocol extensions feels at all corporate.
Please fix this!
For client systems, couldn't there just be a virtual /dev/input/XYZ that Barrier forwards events through
And for host systems, it looks like xev only logs input events when the window is focused.
Is xeyes still broken on Wayland, and how to fix it so that it would work with Barrier?
With Barrier, when the mouse cursor reaches a screen boundary, the keyboard and mouse input are then passed to a different X session on another box until the cursor again crosses a screen boundary rule.
Barrier is a fork of Synergy's open core: https://github.com/debauchee/barrier
You seem to be asking for kernel thing, not something Wayland. But let's assume you wanted a protocol on top of Wayland to do this:
Why can't arbitrary Wayland clients always see the mouse pointer, snoop on the keyboard, and inject keypresses? Because of security, by design.
Why is it taking a bunch of work to provide that capability in an access-controlled way? Because it's a bunch of work. For example, quoting libei: "However, the events are distinguishable inside the compositor to allow for fine-grained access control on which events may be emulated and when emulation is permitted."
But the Wayland compositor authors will steer their software to run effectively on Linux. If that means it is difficult to port to Windows or Mac (whether because they miss dma-buf, or demand something that the native platform won't provide to non-system process), so be it.
Which is actually an interesting approach; linux native compositors should "steal" that idea and implement it too. It could lead to RemoteApp-alike for Linux.
Waypipe proxies Wayland over SSH etc: https://gitlab.freedesktop.org/mstoeckl/waypipe/
If you just ran a web browser directly on the hardware (or native window system in full screen mode) instead of bothering with non-great X11 or Wayland or Windows or Mac window systems, then you could write great window managers using open standards that ran identically across Linux, Mac, and Windows, plus mobile and VR devices too.
I was one of those people, in 1994.
Most people don't want to spend hours tweaking Enlightenment themes, or keyboard shortcuts for tiled windows.
How so? I run Electron apps all the time. They behave like any other app.
> Most people don't want to spend hours tweaking Enlightenment themes, or keyboard shortcuts for tiled windows.
Most people don't want to run Linux. And I don't want to waste my free time experimenting with a critical desktop component.
BTW, remember those people who actually make Linux work for the rest of us? Many of them do want to do those things. It's how they got to be Linux contributors in the first place.
Oh do I remember, Red-Hat, Mandrake, IBM, Intel, Oracle, Google, Linaro,....
Slackware 2.0 was my first distribution.
I am aware, that is why I specified which compositor I am running. The comment I replied to said (emphasis mine) "*Wayland* won't work well on non-Linux systems" which is clearly false. To put it into another context: only a subset of C programs run on windows, but it would be silly to claim C won't work on windows.
As for the bug report you linked, the response seems quite reasonable:
> We already have Wayland protocols for input emulation. I think libei should add support for those.
Since standardized protocols exist, why should every compositor have to integrate this library instead of the library integrating support for the standardized protocols?
What standardized protocol? Each wayland makes a different choice. That's the problem. And yeah, I guess I can't say this is a sway issue, their choice is reasonable enough. But it highlights how reasonable actions in a broken system like the waylands can cause problems. They're not doing anything "wrong" and neither are the waylands using libei (all the mouse/keyboard sharing programs target libei, maybe in the future some can target whatever sway comes up with). But it does lead to things not working across waylands. Whereas in X things do work no matter what X implementation you use.
There is no wayland. Just waylands.
I did give it a brief try but getting very low fps, which tells me it's probably running on CPU if I had to guess.
X can open a window on another machine over ssh
Can Wayland do the same?
[1] https://gitlab.freedesktop.org/mstoeckl/waypipe/
[2] https://wayland.freedesktop.org/faq.html#heading_toc_j_8
Hard pass on wayland right there.
At least until it offers RR natively (meaning: I don't have to waste hours of my life to get it working).