Wayland seems ready to me but the main problem that many programs are not configured / compiled to support it. Why is that? I know it’s not easy as “Wayland support? Yes” (but in many cases adding a flag is enough but maybe it’s not a perfect support). What am I missing? Even Blender says if it fails to use Wayland it will use X11.
When Wayland is detected, it is the preferred system, otherwise X11 will be used
Also XWayland has many limitations as X11 does.
because for most of them, there is nothing to port them to. Wayland is incomplete… by design.
What are advantages of being
incomplete… by design ?
I know Wayland is simpler but it should cover almost every highly requested feature if developers need it.
You have a gross misunderstanding of what a display fucking system should do. X11 nowadays provides the same thing to apps as Wayland, except some bad design hacks that have become fundamental to writing Linux apps that are essentially workarounds for X11 sucking badly.
NOBODY uses X11’s font system or widget system or vector system nowadays. X11 provides you with a render plane and some other bullshit and the toolkit does the rest.
Which is the same as Wayland. Except Wayland actually has a properly designed and standardized way of doing things through the extension system, as in X11 everything is cobbled together from hacks.
A good example is absolute window positioning. Wayland doesn’t have it because it’s been found that it wasn’t actually really needed, people did things that way because something that’s essentially a clever hack had become the de facto standard on X11. Same thing with how X11 apps do window captures.
Generally, Wayland is a great leap in Linux desktop system. We’re catching up to what MacOS and Windows did 20 fucking years ago.
It is not enough to make a better product.
It is not enough to create all tooling and libraries to seamlessly migrate to the new product, but it helps.
There also needs to be a great big positive reason to make the change. Paying developers, huge user base, the only hardware support, great visuals, etc.
Until I cannot run software on X11, I won’t switch over knowingly.
Until I cannot run software on X11, I won’t switch over knowingly.
Please explain
Why would someone stay with x even though it’s deprecated, architecturally broken and unmaintainable
Once the desktops switch to Wayland and all distros ship with Wayland by default, support should slow.
Ideally, developers stop improving xwayland over time and go into maintenance mode for a bit. Once it goes into maintenance mode, developers should naturally fall off as it winds down.
If every desktop makes a very public announcement about the xwayland protocol being put into maintenance mode, actively supported apps should switch over. It’s up to the public how long they want to keep maintaining xwayland (open source etc).
xwayland cannot ever be removed, because wayland, by design, will not have enough functionality to replace it. So one can either support X desktop environments with their own individual bugs, or one X implementation that has the needed features and works consistently for all DEs
If developers drop off there’s not much we can do. It’ll eventually have to be removed or become a bigger security risk than developers say it is already.
Support on the x server itself has dropped off precipitously since Wayland hit the mainstream and most small x11 DEs are trying to build off of WM like wayfire or wlroots.
But why would the distros do that? It takes effort and has real costs for them.
They’re already starting to go that way, in a couple years Linux mint is even going to support Wayland. Ubuntu and fedora has already defaulted to Wayland. Fedora is actually deprecating xorg in a few releases. Budgie wants to have full support next year.
There isn’t much more than the testing they already have to do every release. Infact not having to support legacy code will free up resources for the whole Linux community as well as cutting the time in half for validating packages on distros. Every package that runs on xorg also runs on wayland, they have to test both.
Granted some have custom tools they’ll be working on but it’s going to be a while before every major DE supports Wayland. I’m curious, you think the distros have to implement their own version of Wayland?
So, even though KDE Plasma has significantly advanced Wayland, a stronger push is still needed to drive the change further.
I don’t think kde plasma was the only one. Anyway, it just feels natural for xwayland to stop pushing for feature parody and for focus to switch over to Wayland after a while.
The biggest target for developers is the Ubuntu/Debian platform so their switch to Wayland should motivate other projects and paid applications to at least take notice.
New projects will try to support both but typically will focus more on Wayland. There’s already an unintentional incentive to partially support xdg protocols Wayland relies on thanks to flatpak.
Because Wayland is STILL lacking a lot of things that people need.
Could you give me some examples so I can understand what’s missing and being waited on?
for one, it’s missing a good chunk of A11y stuff, activity watch requires something to monitor the active window, there is a PR for that, still not merged, this has been an issue for years
It’s missing protocols that will let applications request to be a privileged application, which is necessary for applications to use other functionality.
Missing protocols to control always-on-top / layers, which is needed for OSKs to function, and a couple other A11y things off the top of my head.
It’s not just a11y either, Window positioning still isn’t merged, which means if your app opens two “windows”, you cannot currently select where to open them, or to even bind two windows together (Android emulator does this for instance).
There is a LOT wayland is missing, it IS getting better, just at a snails pace.
Someone above mentioned screen reader support for blind use accessibility stuff. For users who are blind, this is critical.
It’s the opposite for me. X11 is unusable on my laptop because it doesn’t support fractional scaling well, whereas on my desktop it doesn’t allow for a multi monitor setup with different refresh rates. Both dealbreakers are not present with Wayland. Though your point still stands; NVIDIA GPUs continue to suck more with Wayland than X11 for example.
I’m not defending x11, both wayland and x11 are trash, it’s just whichever trash pile you find yourself most comfortable in.
On x11, fractional scaling is more or less just handled by the gui toolkit. It does suck that you need to set an env var for it, but IMO that isn’t too bad.
the multi monitor stuff does suck for sure. It’s not an issue for me personally. One thing that is a massive issue for me is x11’s terrible handling of touch, I use touch screens daily so that’s a massive issue for me, wayland compositors are also typically quite a bit faster then x11 + wms on low end systems now too (not to be confused with total resource usage/lightness).
Wayland has a lot of things going for it, but it also has a lot going against it. Both are terrible. Arcan save us (oh how a man can dream)
I heard wayland is hard to develop for and xwayland work a little too well, idk I’m not a programmer
Because it’s so complicated that given a page (page and a half) to answer the simple question, “Why does Wayland support still give you more problems than solutions?” We had to describe it like the summary of a PHD theses in client server architecture?
Come on with that load of hot trash 😭
Do you want the short answer? The short answer is “Because there’s a lot of applications that do a lot of different things and getting a good design for a protocol that supports all of those things is a process that takes time”
With the headline, yeah… kinda :-) Your answer plus a bit of “this is why it’s important.” And I would have grunted and gone back under my bridge…
I’m feeling a bit sheepish about my comment on the other side of the day.
But I was also hoping for a lot more. Better desktop security… and that’s underselling it because my understanding is we’re pretty much coming from zero, so this was always going to be rough.
I have yet to run into an insurmountable issue, but I’ve just hopped distros rather than (successful) troubleshooting. Always makes me grumpy ;-)
If I understand correctly, Wayland does provide better desktop security. At least two of the common issues are tied directly back to that.
Screen sharing apps, which need to access what one or more other apps are showing, and screen readers for the deaf, which need to access what text other apps are displaying.
Wayland intentionally recuses itself of these problems. That’s understandable, as these problems aren’t specifically in the realm of a display protocol. However, this has led to some significant problems.
Specifically, since there is a power and implementation void, and the Wayland crew haven’t stepped in or endorsed any particular way to fill it, each compositor/desktop library is now implementing it’s own means to achieve these ends. This leads to other problems.
You want to write software for X for some of these things, and regardless of the DE you’re working in, there are more fundamental ways to address the information you need. But if you want to do so with Wayland, there’s no “fundamental” layer to reach for, because it’s handled by the DE compositor and toolkits.
So you need to do it the KDE way, or the Gnome way, or the wlroots way, etc etc - and what if you want it to work with all of them? Simple: just code it multiple times and deal with multiple different frameworks, each with their own learning curves, restrictions, and quirks.
…by which I mean, “/s, jk jk, not actually simple.”
Really, my hope at this point is that maybe kde/plasma and gnome will standardize around wlroots (i.e., there is no hope).
So, failing that - maybe a single library for accessibility that does the work once (multiple times, but once), and is adopted and used by kde/gnome/wlroots, and a single library that does the same for display sharing.