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.
good is the enemy of excellent. X11 works for most users (almost all the users?) well. You can see that with the adoptions of other standards like the C++ standards and IPV6 which can feel like forever.
Another thing I think one of the X11 maintainers mentioned iirc is that they have been fairly gentle with deprecation. some commercial company could have deprecated X11 and left you with a wayland session that is inferior in some ways.
for better and worse, XWayland works perhaps too well
Not on Cosmic Epoch Alpha 1 but yeah 😆
because for most of them, there is nothing to port them to. Wayland is incomplete… by design.
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.
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.
“almost” being the key word there.
You’re asking the Linux community to agree on something
Haha yeah but also to know something I’m missing.
No, he’s not!
Don’t tell me what to agree with!
Also XWayland has many limitations as X11 does.
If an app has only ever supported X11, then it probably doesn’t care about those limitations (the apps that do care probably already have a Wayland version). And if an app doesn’t care about the extra stuff Wayland has to offer, then there’s not really a reason to add the extra support burden of Wayland. As long as they work fine in XWayland, I think a lot of apps won’t switch over until X11 support starts dropping from their toolkit, and they’ll just go straight to Wayland-only.
Yeah I agree. Maybe some day X11 will be seen as something legacy that needs to be deprecated. But not now…
Plasma deprecated their X11 session in v6 pending removal in the future, and Redhat has already dropped it in Fedora & will do for EL in the next release.
So it begins…
Plasma didn’t deprecate X11. Though some developers hinted that the Xorg session will probably be dropped before Plasma 7 and before Qt drops X11. But nothing concrete.
Oh indeed not deprecated, my bad. Wayland is default and “preferred” (how they’re deciding what to prefer I can’t imagine), and X11 is confirmed to be removed in a future release.
X11 has exactly one developer who’s a vaccine denying turbocunt German, everyone else has dropped it and it’s codebase is practically unknown territory with security risks.
Look man, it’s dead already
xwayland covers most use cases already anyway
It is still young and underdeveloped.
It is advertised to be simpler, but I don’t understand any of this words thrown in this thread. And I don’t care. Pulseaudio and pipewire is still making me troubles, even thou alsa worked without issues for me.
Point it, make it clear and stable and we will come. Until than we will use the beast we know. It os mich easier when there are no options, but Wayland is fighting something that exists and it takes time and effort.
Another problem is they pushed it to early and people got burned. Until I start seeing “I switched to Wayland in one command and everything works” I (as a user) will not touch it (unles my distro decides to drop X).
Blender’s Wayland support is not great because they’re doing stuff from scratch. They’re not using an existing toolkit like GTK, Qt, Electron, or even something like SDL to get Wayland support.
But if you’re using an existing toolkit things are much easier and support is automatically there, you just need to do testing to ensure everything works.
The common biggest things that still use Xwayland are Chromium based apps and programs running under wine/proton. Chromium has an experimental Wayland mode that works well enough, but definitely has some bugs, especially around windowing. Wine Wayland is in the works.
Thanks for the insight.
Yeah Blender seems like an exception.
Also that means I play lots of Wine/Proton games and many web apps / Electron don’t care.
Wine and Proton have actually put a ton of work into Wayland support, it’s very far along. I wouldn’t be surprised for Proton to have a native Wayland version soon.
Great to hear that!
So software like CAD is funny. Under the surface, 3d CAD like FreeCAD or Blender is taking vertices and placing them in a Cartesian space (X/Y/Z - planes). Then it is building objects in that space by calculating the mathematical relationships in serial. So each feature you add involves adding math problems to a tree. Each feature on the tree is linearly built and relies on the previously calculated math.
Editing any changes up tree is a massive issue called the topological naming problem. All CAD has this issue and all fixes are hacks and patches that are incomplete solutions, (it has to do with π and rounding floating point at every stage of the math).
Now, this is only the beginning. Assemblies are made of parts that each have their own Cartesian coordinate planes. Often, individual parts have features that are referencing other parts in a live relationship where a change in part A also changes part B.
Now imagine modeling a whole car, a game world, a movie set, or a skyscraper. The assemblies get quite large depending on what you’re working on. Just an entire 3d printer modeled in FreeCAD was more than my last computer could handle.
Most advanced CAD needs to get to the level of hardware integration where generalizations made for something like Wayland simply are not sufficient. Like your default CPU scheduler, (CFS on Linux) is setup to maximize throughput at all costs. For CAD, this is not optimal. The process niceness may be enough in most cases, but there may be times when true CPU set isolation is needed to prevent anything interrupting the math as it renders. How this is split and managed with a GPU may be important too.
I barely know enough to say this much. When I was pushing my last computer too far with FreeCAD, optimising the CPU scheduler stopped a crashing problem and extended my use slightly, but was not worth much. I really needed a better computer. However looking into the issue deeply was interesting. It revealed how CAD is a solid outlier workflow that is extremely demanding and very different from the rest of the computer where user experience is the focus.
Yet games like Dyson Sphere project a triangle grid on a globe, run fine in wine wayland?
Wayland will perform better than X as there is no server it has to go through. It can talk almost directly to hardware
It’s true what you write, but it’s not related to Wayland/X11.
But this is the reason CAD software can’t use multiple cpu cores for geometry calculations. The next calculation needs the result of the previous one, it can’t be parallelized.
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.
Oh it sounds like you understand it correctly :-)
Thank you for taking the time to type this all up, you have expertly summarized the situation and I’m very grateful. Even with focused research it can be very hard to gain an objective understanding of complex subjects these days… doubly so when polaring topics like how to do desktop linux right are involved.
I suppose it would be foolish of the Wayland devs to wade into the middle of those waters if they want their work to remain beneficial to all. And suddenly the abstract technical details in the linked article make more sense to me… they really want to remain abstract from some of the implementation details.
This does seem a bit grim… and it perfectly explains why my problems could be fixed and one distro/wm and not another while still somehow being a “waylaid issue.” I suppose the best solutions/implementations will probably at least end up being shared in principle… I don’t really know enough about the current state of either desktop to be sure, I just wanted to say something positive :-)
Honestly, it’s pretty normal for Linux. It’ll fracture until it becomes glaringly obvious that there’s a problem, and then it’ll get standardized, and the standard may be supported in the next version.
Ubuntu could have gone flatpak. They didn’t. Kde and gnome could have come to a common agreement about desktop-related stuff they have in common. They didn’t. So it goes. The real pain points eventually get fixed.
Non linear evolution at it’s finest ;-)
It’s a lot harder to keep track of than it used to be but (holy crap) we won… mostly.
Honestly? Yeah. I agree. At the very least, a solid niche has been carved out, and it’s growing. I like that.
I’d really like to see more governmental support, but… …so it goes.
Until recently, Wayland development was rather slow, especially in the areas where more specialized software run into issues that force them to stick with X11. Since Wayland does a lot less than X11 and is more componetized across multiple libraries designed to be swappable, some of these areas simply do not have solutions. Yet.
And, as always with FOSS, funding is a big part of the problem. The recent funding boosts the GNOME foundation received have also led to some increased funding for work on Wayland and friends. In particular, accessibility has been almost nonexistent on Wayland, so that also means that if an app wants to ensure certain levels of accessibility, they can’t switch to Wayland. GNOME’s Newton effort is still very alpha, but promising.
While big apps like blender and krita get good funding, they can’t necessarily solve the problem themselves by throwing money at it, either. But the more funding Wayland gets to fill in the feature-gaps and ease adoption, the sooner we’ll be able to move away from xwayland as a fallback.
Wayland and its whole implementation process certinally aren’t without fault. There’s a lot of really justified anger and frustration all around. Even so, staying on X11 isnt a solution.
I heard wayland is hard to develop for and xwayland work a little too well, idk I’m not a programmer
I think X11 works out of the box but Wayland needs more knowledge and effort for now.
In my opinion, that’s because X11 lacks proper abstract for many things like screenshot, screencast, color managerment and etc, so the applications have to use many X11 implementation details to implement these features. It leads to high-coupling code with X11 so move their code to wayland and ensuring it works correctly and is consistent with the old behavior is difficult.
Because it doesn’t matter for most apps. XWayland works fine.
Even Blender says if it fails to use Wayland it will use X11.
What are you trying to say? Of course it does. Pretty much every Linux app still supports X11, because a lot of people are still using X11. Only exception I’m aware of is Waydroid.
I believe Wayland should be the default, but we should have the option to switch to X11 (using XWayland on Wayland) if desired.
Wayland is the default on blender, that is what that text says
Average over-enthusiastic Wayland promoter:
I am not sure I understand, OP is clearly misinterpreting the text they quote
Yes And I’m just pulling his leg for being overly excited
Because Wayland is fundamentally very different from the older X protocol, and many programs don’t even directly do X. They leverage libraries that do it for them. Those libraries are a huge part of the lag. Once GTK and Qt and the like start having a stable Wayland interface, you’ll see a huge influx of support.
A big part of the slowness is why Wayland is a thing to begin with. X hid a lot of the display hardware from apps. Things like accessing 3d hardware had to be done with specialized display clients. This was because X is natively a remote display tool. You can use X to have your program show its display somewhere else. Wayland won’t do that because that’s not the point. Applications that care will have goals for change. Applications don’t care will support it once someone else does it for them.
Right now, the only things that would benefit from Wayland are games and apps that make heavy use of certain types of hardware. Half of those don’t care about linux, while the other half is OK with X and xwayland.
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?
Someone above mentioned screen reader support for blind use accessibility stuff. For users who are blind, this is critical.
This is actually one thing that doesn’t involve wayland, as pretty much everyone is using at-spi. It’s not great, but it does work.
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.
_
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)