Asahi Linux to Users: Please Stop Using X.org
phoronix.com
phoronix.com
That aside it gives similar vibes to systemd. Honestly, not a fan of these userland utilities/systems that just throw everything into the kitchen sink.
It really effects the modularity of things when suddenly things start depending on them.
This not to say X does not have it's own problems and I even find it a bit on the monolithic side.
And generally I think it’s really healthy for everyone when developers boldly refuse to take on too much. The result is more focused work and less maintainer burnout. It also clears the way for someone else to pick up the slack.
If xorg support on apple silicon is important to you, you’re welcome to spearhead that work yourself. Nobody else will do it. And at a risk of sounding rude, opensource isn’t a democracy. I don’t get a say in what you work on, and you don’t get a say in what the asahi linux team works on.
Everyone -- everyone -- with deep expertise on how graphics works has the same advice: Forget X. Use Wayland. Period. The X developers largely stopped developing X and put all their effort into Wayland.
Wayland is the future. You can either be on that train or watch all your software bitrot as new software just stops supporting X.
Having seen cycles like this over and over. Some project develops over decades which included many corner cases that need covered. It then becomes difficult to work with or adapt to some newer "things" (in this case modern gpus).
So people start to look at making a new project "taking" the bits they deem in important or adopting a strategy to work better with those newer things. Then after many years the project in some aspects starts to resemble a state of what it replaced. Repeat...
Now maybe I should have been a little more explicit I just kinda surprised how blunt the developers of this distro are being here. Having just decided to play around with wayland again just this last month and still noticing issues. I can see plenty of reasons why people would not want to switch just yet.
I don't give a fuck about knowledge, I want a working system and Wayland has this misfeature that it has been declared "complete" long before any DE had the chance to reinvent the X APIs it dropped.
> You can either be on that train or watch all your software bitrot as new software just stops supporting X.
The question is what is it going to support instead? Wayland moved most of the X features into the hands of the desktop environments on one end and graphics drivers on the other end. The gigantic fuck up with NVIDIA compatibility was already a pain in the ass, do I even want to know how many GNOME and KDE versions (just to mention the big two) will need special treatment to make things work?
Those with expertise in this area have chosen Wayland. If Wayland isn't doing it for you, make it better. File bug reports, write some code. Just realize that there is an active, interested community surrounding Wayland, not so much for X anymore.
Wayland implementations only depend on the kernel’s abstractions for video cards/buffers. Blame only NVIDIA that they were unable to support the kernel for so long. Xorg just had a hacked userspace support for nvidia cards via a binary proprietary patch — is that really the tooling you would want to use?
Then I will consider using it.
So far all the software I use runs in X.
It has been over a decade and I keep finding myself disabling Wayland still. That said, Linux is not my primary driver, I just can not be bothered.
Even in the hand-edit modelines days, even then I never saw X itself crash if it started at all.
Modern Windows, by contrast, knows how to restart a crashed video driver, without the clients even knowing anything has happened.
In fact, I don’t remember any crashes from the past 3 years from continuous usage.
The X server is restarted, my apps are still open.
It's an implementation detail users don't care about. Users care about being able to complete tasks. For that they need good documentation, plenty of examples online, good availability of flexible software tools, and a good bonus is non-fragmented ecosystem for the basis of the system they're configuring/extending ...
Wayland compositor kitchen sink approach is kinda working against easy adoption here. It's like now there are 8 different Xorg servers each with different bugs protocol feature support, configuration mechanisms, and driver compatibility issues.
Things can be incredibly modular and depend on each other. In reality, the more modular something is the more dependable things are on each other.
Tools before systemd also depended on each other.
Systemd is plenty modular, its just managed in one project. Just like BSDs. So it is modular and depends the different parts depend on each other.
However, just considering wlroots this is not the only library probably (the most popular probably), but if you want to switch to using something else good luck.
Also the wayland team definitely has opinions about certain things and that definitely rubs some people the wrong way, but more importantly this makes some things not as easily doable in wayland.
Linux took off because different people could work on parts of it independently.
That is the case because the overall architecture is modular. You can rip out nearly any part and replace it with another one if it does not suit you. These parts were developed in different projects that could be agnositic towards other projects.
If you increase dependencies on very specific parts of other projects, you stop being agnostic. You lose huge amounts of velocity and you lose potential developers because setting up your project and testing is now much more complicated.
If the Linux world continues to make these mistakes, Linux development will not only slow down, we will see a lot of parts rotting away.
The kernel being a monolith is less of an issue, because there are enough companies that care about it. These companies can pour resources into the mentioned problems like setup and testing.
Desktop Linux does not benefit from that because most companies only care about Linux as a server environment.
Asahi Linux is way younger, moves way faster, and I hope they don't share the same mentality. Also, they are much smaller, and can't spread themselves too thin. If I were an Asahi user, and cared about X.org there, I'd seriously consider helping fix issues with it somehow.
Then you should love Wayland, since it explicitly keeps its slope as small as possible, unlike X11. Hence why a bunch of stuff is done separately from Wayland, e.g. screen capture.
Compositor either has to setup writeback if hardware supports it, or do the composition in software during capture, and provide the buffers to a recording app.
In that it solves a hard problem well?
> not a fan of these userland utilities/systems that just throw everything into the kitchen sink
So I guess you dislike Xorg, then, and prefer the much more “do one thing well” approach of Wayland? Wayland is a tiny protocol only, that builds on kernel APIs to manage buffers instead of reimplementing it in userspace and it’s implementations are much more easier to reason about than the truly monolithic XOrg - which included everything from printing to whatnot.
There's plenty wrong with the current Wayland system on many platforms (once again looking at you and your drivers, Nvidia) but if the hardware support is there, Wayland just is a lot nicer to use.
I bet once the major players switch to Wayland by default, this is just going to be one of those things people will fight over till the very end, like how some people still get enraged if someone doesn't write a SystemV init script for them and only packages a systemd service file.
X11 may work because it has become the de facto standard for open GUIs, but it's a weird, janky system being abused for things it wasn't designed to do in the first place. The missing support for some stuff is very annoying, but that will pass. The underlying API design just makes so much more sense than X11 ever did.
> your speakers sound terrible and tinny or don't even work at all by default (once we ship that)
So this sounds completely unrelated to Xorg vs Wayland. Can someone care to explain?
I do prefer Xorg currently but I can think I can live with Wayland (I tried a bunch of times before, some things I found better than Xorg, but others were blockers, although they ought to be resolved someday I guess). Both live in userland though.
Comparatively, this sounds quite surprising. Is the use of a sound server like pulseaudio or pipewire basically mandated to safely handle the audio hardware? Why should I need those?
I'm aware of the design of these Macs audio that can physically destroy speakers if not driven correctly, and I know it's being worked on, but it seems to imply the safety features are handled at the userland (pipewire I guess?) level instead of the kernel/ALSA level (which IMHO is what should be done for something that can irremediably destroy hardware).
Thus, while I can understand that it wound be quicker to develop and validate such protections in userland, but ultimately I believe the end goal would be to have safe audio hardware support right in the mainline kernel, or at the very least as an ALSA plugin (which would be equivalent to mesa for graphics support)
EDIT: seems like it's pipewire: https://github.com/chadmed/asahi-audio
From https://github.com/chadmed/asahi-audio
> ASoC exposes the speaker array as six independent drivers - two woofers and a tweeter each for Left and Right. We want userspace to see this as a standard stereo speaker pair. The configuration fragment shipped in this package sets up a virtual sink that takes a stereo input and routes it appropriately to each driver.
> We then run into another issue - the speakers sound awful. Turns out Macs aren't magic, they sound good because Apple invest a lot of engineering effort into DSP. Apple actually handle this with odd bespoke Core Audio plugins. We use PipeWire's convolver plugin to apply impulse responses to each driver, which effectively EQs the output signals.
> The kernel driver currently makes no effort to diminish your ability to destroy your machine through misconfigured settings in userspace
This is what I find quite unacceptable from a design PoV, this kind of safety should be as close to the kernel as possible.
The Asahi team do say there will be a basic level of safety implemented in the kernel like this:
> some kind of “safety watchdog interlock” with the kernel that only enables higher volume limits when the daemon is active and running
This sounds like a limitation derived from ancient architectures and platforms. What's the barrier to allowing FP in kernel modules for platforms that are guaranteed to have FP support? Is it too much work for the kernel to save and restore FP registers and modes?
I can understand they want to test their GPU drivers only against the main Wayland compositors. Xorg is quite another beast to support. For all I know, it might come into the context when most bugs have been ironed out in the GPU drivers.
I do hope people do not take it as general advice. Not all desktop environments have a Wayland compositor, some are quite buggy and many apps don't work yet with Wayland. I am using Xfce and for the next year at least I will be on Xorg. I do hope Wayland gets better, but it has been an undertaking of many years already. The rest of the process won't be much faster I suspect.
Yes, not every random app and feature you use on Xorg will have a Wayland equivalent. Deal with it. The major players in desktop Linux have decided it's time to move on from Xorg, and if you want to go against the tide you're on your own.
Not to mention that talking about 'the major players in desktop Linux' is completely against what the OS ethos was supposed to be about; he said the quiet part out loud, and people strike back; it is only fair.If you want to go against the tide, you truly are on your own. You should expect less and less things to work over time as Xorg's code rots, X backends for GUI frameworks rot, and new hardware and drivers expose X bugs which won't be fixed.
If this doesn't scream "it's time to move away", I don't really know what does. Nobody can force anyone to move of course. But the writing truly is on the wall.
My desktop not working, or apps being blurred, or slower, or my mouse cursor stuttering, or screen sharing not working, or Java apps not getting the hidpi settings. That’s what drives me away from Wayland, and all of those happened to me.
I don’t think anybody is against Wayland “just because”. When it matures and app support is better, we’ll switch.
14 years later there's still no rational reason to run Wayland, and I doubt there ever will be.
I'm a simple user with simple needs, though apparently that's already pushing the limits of what Xorg can deliver: I have a high-DPI laptop scaled 140%, and a secondary high-res/average-DPI display at 100%. Mixing scaling factors has never worked well under Xorg (rendering glitches with ghost lines, applications like drop down terminals not knowing the dimensions of their viewport when opened on one screen and then or the other). And I'm not even getting into the better handling of discrete GPUs or the much smoother scrolling/animations that give it a better polish.
Xorg totally made sense in the context in which it was invented (in the long forgotten era of server-side rendering), but with applications rendering their own widgets and passing pixmaps to the compositor, Wayland is mostly about cutting the middleman and breaking-off with the obsolete/unmaintained/insecure bits. If you grab a distro with the latest gnome/kde, you should be at a point where Wayland really is only upsides.
I’m periodically re-evaluating Wayland for my own needs, and so far I chose Xorg every time. I need to do work on my ws, so I need to prioritize stableness to features. I don’t care about fancy features and I’d be ok with KDE 3.5.
Ironically, what should work way better on wayland rather than xorg (hidpi, especially with fractional settings) still works better on xorg for me.
This statement continues to sound like its trying to become self-fulfilling.
Xorg releases still happen (I'm not going to get into a debate about what is "well" maintained)
As many people move to Wayland those interested in X long-term should be given the space to do so, and statements like this set out to prevent it.
It's even a case of "protest too much" -- saying it over and over means that probably it isn't true.
The statement "Xorg isn't well-maintained anymore" isn't an attempt at a self-fulfilling prophecy. It's a statement of fact. The people and companies and organizations who used to do the work on X11 are now working on Wayland. The same people and groups are doing the same kind of work, just on a different protocol.
What is the “typical” linux desktop workflow, btw? It’s probably an OS used by a bunch of geeks, everybody’s got his own quirks.
He also said[1]:
> We don't have the time
And then he said[2]:
> If you want to change that, better volunteer yourself :)
Rather, I think he's saying the loud part out loud. OSS can have an opinion, and you're free to modify it to suit your own opinion.
[1] https://social.treehouse.systems/@marcan/110354541574112092 [2] https://social.treehouse.systems/@marcan/110354734990416348
Even fully baked patches will turn out to require "incompatible architectural changes".
Eric S. Raymond likes to contribute to open source projects in the form of fully realized, thoroughly architected megapatches that totally upend all the assumptions about how a system/subsystem works and behaves, along with a long lecture about why his patch should be accepted which boils down to "I'm ESR, I know how this bit should be designed much better than you, so there". That is the exact opposite of doing the work. Doing the work involves empathy and respect for the needs and experiences of others.
If you want Asahi Linux to support Xorg, you have three choices:
* Accept things as is.
* Fork the project.
* "Do the work". Convince the Asahi maintainers, in terms they are likely to appreciate, why Xorg inclusion is a good idea and who will be assuming the maintenance burden with little to no effort on their part. Then try to merge your patches.
This attitude right here is why I don't use desktop Linux anymore. I'm tired of caring about my system components, instead of just using them.
Other than that I think having options / alternatives is a great thing. And if option a) intends to replace option b), then there will be compatibility issues in various degrees.
It's not that different than with other computer components, like CPU architecture (ARM vs x86/x64), GPU chips (Nvidia vs. AMD) and many more. Choosing the most popular option will usually result in the least amount of potential compatibility issues, but any of those options will work well in most situations.
I continue to use X simply because the distro I use pushes it. Most of the issues mentioned wouldn't bother me. And if things get to broken I guess I will move at some point.
Nobody says you can't use X, you can, just temper your expectation on bugs being fixed and so on.
Hmmm. Seems like writing this on Mastodon is practically a sign from the heavens that they will do exactly that.
Hopefully for the sake of maintainer sanity, and assuming this really is a resource nightmare, the users in question will at least get to see a formal message somewhere, as in the classic two levels of "are you sure" dialogs, or maybe something novel like an unkillable scorpion guy appearing in their htop interface, etc.
your desktop tears
screen capture is dog slow
your media keys stop working one day
your speakers sound terrible and tinny or don't even work at all by default (once we ship that)
VSync is broken
your display looks duller and the colors muted
It’s kind of funny though how apparently Wayland is another hydra that tries to get involved with sound and other things it doesn’t really have business with.
> your desktop tears
Maybe but I don't care, I care about a desktop that works. I went back to X on my laptop after testing Wayland because something important didn't work but I can't remember what.
> screen capture is dog slow
I never realized it.
> your media keys stop working one day
Brightness controls work with some NVIDIA drivers and don't with others but there are workarounds: hotkeys bound to brightness control scripts.
I think that the next three points are specific to the work they are doing on Macs so they don't apply to my experience.
> your speakers sound terrible and tinny or don't even work at all by default (once we ship that)
> VSync is broken
> your display looks duller and the colors muted
This is straight from the Cascade of Attention-Deficit Teenagers model: https://www.jwz.org/doc/cadt.html.
Then I will consider using it.
In practice it is very seldom a problem, and the more people use wayland the more stable it becomes. Also, there is nothing inherent in wayland’s design that would make this multi-process architecture impossible, it’s just not worth it.