Well known KDE developer Nate Graham is out with a blog post today outlining his latest Wayland thoughts, how X11 is a bad platform, and the recent topic of “Wayland breaking everything” isn’t really accurate.
“In this context, “breaking everything” is another perhaps less accurate way of saying “not everything is fully ported yet”. This porting is necessary because Wayland is designed to target a future that doesn’t include 100% drop-in compatibility with everything we did in the past, because it turns out that a lot of those things don’t make sense anymore. For the ones that do, a compatibility layer (XWayland) is already provided, and anything needing deeper system integration generally has a path forward (Portals and Wayland protocols and PipeWire) or is being actively worked on. It’s all happening!”
Alternatively, instead of reading a Phoronix article that has a couple of short snippets from a much longer blog post, you can read the original blog post yourself to see the full context.
Edit: Also, it is worth noting that the author of the original blog post had previously written another relatively recent post criticizing the way in which Wayland was developed, so it’s not like they are refusing to see its problems.
One of the specific issues from those who’ve worked with Wayland and is echoed here in Nate’s other post that you mentioned.
Wayland has not been without its problems, it’s true. Because it was invented by shell-shocked X developers, in my opinion it went too far in the other direction.
I tend to disagree. Had say the XDG stuff been specified in protocol, implementation of handlers for some of that XDG stuff would have been required in things that honestly wouldn’t have needed them. I don’t think infotainment systems need a concept of copy/paste but having to write:
Some_Sort_Of_Return handle_copy(wl_surface *srf, wl_buffer* buf) { //Completely ignore this return 0; } Some_Sort_Of_Return handle_paste(wl_surface *srf, wl_buffer* buf) { //Completely ignore this return 0; }
Is really missing the point of starting fresh, is bytes in the binary that didn’t need to be there, and while my example is pretty minimal for shits and giggles IRL would have been a great way to introduce “randomness” and “breakage” for those just wanting to ignore this entire aspect.
But one of those agree to disagree. I think the level of hands off Wayland went was the correct amount. And now that we have things like
wlroots
even better, because if want to start there you can now start there and add what you need. XDG is XDG and if that’s what you want, you can have it. But if you want your own way (because eff working nicely with GNOME and KDE, if that’s your cup of tea) you’ve got all the rope in the world you will ever need.I get what Nate is saying, but things like XDG are just what happened with ICCCM. And when Wayland came in super lightweight, it allowed the inevitably of XDG to have lots of room to specify. ICCCM had to contort to fit around X. I don’t know, but the way I like to think about it is like unsalted butter. Yes, my potato is likely going to need salt and butter. But I like unsalted butter because then if I want a pretty light salt potato, I’m not stuck with starting from salted butter’s level of salt.
I don’t know, maybe I’m just weird like that.
I don’t think infotainment systems need a concept of copy/paste but having to write:
Having lived through the whole “phones don’t need copy and paste debate”, which fortunately got solved by now having it everywhere I’m in the camp “just stick that everywhere, just in case somebody might use it one day”
Wayland has fixed so many head-scratching issues I would get running 6 monitors on 2 GPUs under X11. I’d often end up with missing monitors, placed in wrong spots that I’d have to rearrange every reboot until an update would come through that would fix it again for a few months, then all over again.
Since I moved to wayland, everything just works. When it doesn’t, it’s not a display server issue, it’s something physical. I just had a couple monitors fail to show up and thought “oh hell, it’s back to this, eh”. But I open the tower, seat the offending GPU better, and everything comes up like normal, and all the screens are in the right position, it just remembers.
Anyone that thinks X11 is still superior probably runs on a laptop with a single screen.
man it crazy I switched to Wayland on my laptop and docking to 3 monitors just worked on Wayland and it would remember all my monitors settings
I hand like 2 or 3 scripts setup to try and manage that on x11
Every change will bring it’s fair share of complainers, not much we can do about that. LILO to GRUB, SysV to systemd and now X11 to Wayland. No one is forcing your hand (unless you use a pre-packaged distro like Ubuntu/Fedora, in which case you go with whatever the distro provides), keep using X11 if you want stability, if you wanna dip your toes in bleeding-edge software and increase it’s userbase to show hardware manufacturers that their drivers need to be updated (I’m looking at you, NVIDIA) then feel free to mess around.
Eventually the day will come when Wayland apps will simply not launch on X11 and you’ll migrate too.
I’d say that’s already becoming the case in a few places. Hyprland isn’t just “Wayland good”, it’s “You should use Wayland good”.
Yes, I know the devs behind it act like pissants. That’s bad and I’m sorry for liking their software. I use Emacs too and RMS was kind of an asshole. Hell, I use Lemmy even though one of the devs has slighted me on more than one occasion.
I daily drive Hyprland too, there are some shortcomings with how the mouse behaves with XWayland but I don’t think it’s a Hyprland issue and Gamescope remedies that problem so overall, it’s a great experience.
deleted by creator
… has gotten some help and is now a pretty well-adjusted human being, who still tells right wing trolls to go suck it, and still tells paid professionals that they should have known better when they should have known better, but in language that isn’t abusive.
So I don’t know why you bring him up.
deleted by creator
I think you’re like 5 years behind on this. It’s true, just read up on it. Linus took time off after criticism for his language got too much. And he improved by a lot. You’ll find no more name calling directed at contributors after a certain date.
deleted by creator
deleted by creator
deleted by creator
Every change will bring it’s fair share of complainers
sometimes the complainers are right and sometimes they aren’t
And when they’re right, it’s usually addressed. I say usually because GNOME exists.
In case of Gnome it was addressed, just by different people. Gnome 2 continues to live on as MATE, so anyone who doesn’t like Gnome 3 can use it instead.
Likewise, KDE3 got forked to Trinity. But KDE kept producing (largely) quality software, so Trinity is pretty much an anecdote now.
I don’t understand why anyone ever expects a different outcome. They fork something that has quite some investment into the original version. How do they expect to keep up?
I seem to remember a lot of people upset about GPL V3 I don’t remember how that was resolved.
It was resolved by people not using it if they didn’t want to. Linux Kernel is still GPLv2
AFAIK, Fedora is the only distro that’s getting rid of X11 support, the other distros are still packaging it AFAIK.
There were news about Ubuntu doing it too some time ago, maybe they realized it’s not feasible yet. I don’t follow their development as I don’t use those distros
You are right in spirit.
It was not sysv to systemD, and it was forced (by making udev not work without it).
Other then nvidia, wayland is still missing some protocols (example: what virtual desktop you want your window to be on). But those protocols are (still) being worked on. And you will always be able to run x11 programs on wayland.
The advantages of wayland are a more direct path to hardware, and trowing away lots of code.
Over on Nate’s other blog entry he indicates this:
The fundamental X11 development model was to have a heavyweight window server–called Xorg–which would handle everything, and everyone would use it. Well, in theory there could be others, and at various points in time there were, but in practice writing a new one that isn’t a fork of an old one is nearly impossible
And I think this is something people tend to forget. X11 as a protocol is complex and writing an implementation of it is difficult to say the least. Because of this, we’ve all kind of relied on Xorg’s implementation of it and things like KDE and GNOME piggyback on top of that. However, nothing (outside of the pure complexity) prevented KWin (just as an example) implementing it’s own X server. KWin having it’s own X server would give it specific things that would better handle the things KWin specifically needed.
Good parallel is how crazy insane the HTML5 spec has become and how now pretty much only Google can write a browser for that spec (with thankfully Firefox also keeping up) and everyone is just cloning that browser and putting their specific spin to it. But if a deep enough core change happens, that’s likely to find its way into all of the spins. And that was some of the issue with X. Good example here, because of the specific way X works an “OK” button (as an example) is actually implemented by your toolkit as a child window. Menus those are windows too. In fact pretty much no toolkit uses primitives anymore. It’s all windows with lots and lots of text attributes. And your toolkit Qt, Gtk, WINGs, EFL, etc handle all those attributes so that events like “clicking a mouse button” work like had you clicked a button and not a window that’s drawn to look like a button.
That’s all because these toolkits want to do things that X won’t explicitly allow them to do. Now the various DEs can just write an X server that has their concept of what a button should do, how it should look, etc… And that would work except that, say you fire up GIMP that uses Gtk and Gtk has it’s idea of how that widget should look and work and boom things break with the KDE X server. That’s because of the way X11 is defined. There’s this middle man that always sits there dictating how things work. Clients draw to you, not to the screen in X. And that’s fundamentally how X and Wayland are different.
I think people think of Wayland in the same way of X11. That there’s this Xorg that exists and we’ll all be using it and configuring it. And that’s not wholly true. In X we have the X server and in that department we had Xorg/XFree86 (and some other minor bit players). The analog for that in Wayland (roughly, because Wayland ≠ X) is the Compositor. Of which we have Mutter, Clayland, KWin, Weston, Enlightenment, and so on. Which that’s more than just one that we’re used to. That’s because the Wayland protocol is simple enough for these multiple implementations.
The skinny is that a Compositor needs to at the very least provide these:
- wl_display - This is the protocol itself.
- wl_registry - A place to register objects that come into the compositor.
- wl_surface - A place for things to draw.
- wl_buffer - When those things draw there should be one of these for them to pack the data into.
- wl_output - Where rubber hits the road pretty much, wl_surface should display wl_buffer onto this thing.
- wl_keyboard/wl_touch/etc - The things that will interact with the other things.
- wl_seat - The bringing together of the above into something a human being is interacting with.
And that’s about it. The specifics of how to interface with hardware and what not is mostly left to the kernel. In fact, pretty much compositors are just doing everything in EGL, that is KWin’s wl_buffer (just random example here) is a
eglCreatePbufferSurface
with other stuff specific to what KWin needs and that’s it. I would assume Mutter is pretty much the same case here. This gets a ton of the formality stuff that X11 required out of the way and allows Compositors more direct access to the underlying hardware. Which was pretty much the case for all of the Window Managers since 2010ish. All of them basically Window Manage in OpenGL because OpenGL allowed them to skip a lot of X, but of course there is GLX (that one bit where X and OpenGL cross) but that’s so much better than dealing with Xlib and everything it requires that would routinely require “creative” workarounds.This is what’s great about Wayland, it allows KWin to focus on what KWin needs, mutter to focus on what mutter needs, but provides enough generic interface that Qt applications will show up on mutter just fine. Wayland goes out of its way to get out of the way. BUT that means things we’ve enjoyed previously aren’t there, like clipboards, screen recording, etc. Because X dictated those things and for Wayland, that’s outside of scope.
That’s my problem with this. It tries to be a desktop display server protocol without unifying all desktop requirements. Sure, X11 is old and have unnecessary things that aren’t relevant anymore, however, as someone who builds their own DE, (e.g.: tiling window managers) I see it as the end of this masterrace. Unless everybody moves to wlroots. Flameshot, for example, is already dealing with this, having at least 5 implementations only for linux, and only wlroots and x11 are standards.
Also, imo, having windows in windows is useful when you want to use your favourite terminal in your favourite IDE. But as you said DEs can implement it simply. Let’s say wlroots will implement this but others can decide otherwise. And for those the app won’t run.
Another example, that affects my app personally, is the ability to query which monitor is the pointer at. Wayland doesn’t care having these so I doesn’t care supporting wayland. And I"m being sad about this because X is slowly fading away so new apps will not run on my desktop.
Moreover with X11 I could write my own hotkey daemon in my lanuage of choice, now I would have to fork the compositor.
Do I see it wrong?
Also, imo, having windows in windows is useful when you want to use your favourite terminal in your favourite IDE.
The wayland way to do that is to have the application be a compositor, they made sure that nesting introduces only minimal overhead. And that ties in with the base protocol being so simple: If you only need to deal with talking to the compositor you’re running on, and to the client that you want to embed, a wayland compositor is indeed very small and lean. Much of the codebase in the big compositors deals with kms, multiple monitor support, complex windowing logic that you don’t need, etc.
Oh and just for the record that doesn’t mean that you can’t undock the terminal: Just ask the compositor you’re running on for a second window and compose it there. You can in principle even reparent (client disconnecting from one compositor and connecting to the other) but I think that’s only standardised for the crash case there’s no standard protocol to ask a client to connect to another compositor. Just need to standardise the negotiation protocol, not the mechanism.
The fundamental X11 development model was to have a heavyweight window server–called Xorg–which would handle everything, and everyone would use it.
So there’s a Wayland hope for systemd-afflicted boxes and their cults.
You anti-systemd folks are so insufferable.
after more than 25 years using linux I could not care less about those dramas, when my distro will drop xorg I’ll switch and that’s it. I’ve got way too much stuff to implement myself already, there is no time for that. I mean, I’ve even embraced systemd…
Most distros use Wayland now and you probably won’t notice a difference.
I wish that was my experience, but Nvidia drivers on KDE Wayland have had a lot of oddities and issues that have caused me to go back to Xorg every time I’ve tried (12 times and counting). Wayland is a good move in the right direction, and I look forward to it, but it’s still being implemented.
That’s less about Wayland than it is about shortfalls in nVidia driver development. Exactly like Nate’s example in the blog post.
Oh absolutely, this isn’t to say “Wayland bad”, it’s just to say that a large number of people may not have a smooth transition, so it’s hard to say “just do it”
Just don’t buy nvidia (or stuff from any other company openly hostile towards their users)
It was a birthday gift from my wife, and lets not alienate people who don’t know computer hardware very well and pick up something from Best Buy. I agree that Nvidia sucks, and many of the issues are indeed their fault, but we also can’t neglect the fact that they own the vast majority of the market.
I’ve been a Linux user since the 90s, and nvidia has been a problem as long as I can remember. The wayland issues are just a new chapter in a long saga. ATI used to be the same, but they came around after having been bought by AMD.
If you’re already planning to use Linux on something a quick search will directly tell you that nvidia is a problem. If you got the hardware before nvidia that sucks - but again, it’s nvidias fault.
I think we absolutely should neglect nvidias market share, and just fully drop support for nvidia cards - either they’ll get pressured by angry users to no longer behave like dicks, or they keep doing it, and people will only make the mistake of buying nvidia once (or not use Linux) - either way, we’ll have gotten rid of a massive headache.
Hopefully your card is new enough that NVK will work with it.
I’m sure hoping so, I haven’t followed development super closely, but I’m kinda imagining that the 3080 ti should be new enough :)
It is. RTX 20 series and up use GSP which nouveau/NVK needs for reclocking on modern cards
yeah but the point is why bother? :) especially if I wouldn’t notice differences…
To provide features that Xorg can’t.
If you don’t need features like fractional scaling, VRR, touchscreen gestures, etc. you won’t notice a difference.
People who do use those, will. Because for them, those features would be missing or not complete on Xorg.mmmh, I bet I will not notice any difference also if I don’t do shit and keep whatever is working until the day I’ll have to switch because my distro drops the packages 🤷🏼
Because it fixes all the issues I had with X. Everything runs a bit faster and is smoother plus inputs behave like they should.
sorry, my rhetorical question was obviously intended as why I should bother. I don’t see any value in stopping you doing whatever you think is better for you, in fact it is exactly what annoys me the most :)
why I should bother
Bother to do what? As you said, when your distro switches you go with it and notice no difference. You don’t have to bother to do anything.
yes!
Well Xorg is pretty much unmaintained and is on its death bed. Modern hardware and software are slowly favoring Wayland due to it being much simpler by design.
well, everything which I use runs well on xorg, and I’d need to change relevant parts of my daily stack in order to use wayland sooo … :)
Why bother what?
yes!
Oh boy, 102 comments. Knowing Phoronix, I bet those are a treat to read.
Reading angry boomer Linux comments is one of my most favorite hobbies
Fourteen pages of comments within a day of posting in Phoronix? Grab your popcorn guys 🍿
Anecdote, I know, but for my use cases, Wayland just isn’t there yet- I wind up with far more random bugs and less battery life. I don’t pretend to know why, I’m a pleb non-developer, but until that’s resolved I’m still stuck on X. I’d love to use the new shiny thing of The Future™, but not at the cost of stability and usability.
I think that given how frequently this argument is brought up (and it is of course true about it not being completely there yet) so this is just my opinion on the situation (and I am not a dev so I am fine with being wrong and corrected). It is kind of needed for more projects/distros to start actively using it. As a lot of the stuff kind of needs the band-aid ripped off to start forcing it to get there faster at this point. Otherwise it just keeps being held back as people on the coding end of things will keep focusing on X11 issues instead of getting things ready for Wayland.
Kind of like the conundrum of mobile OSes that aren’t Android or iOS. It is hard to get people/companies to even try the new OS because the lack of apps (specifically the most common ones used by the most people). But app devs don’t want to spend time re-building or starting new apps for an OS that isn’t being used (or on devices people are buying). So at a certain point it needs both sides to interact and make progress. The OS needs the apps more at this point, and getting feedback and data from those devs makes it known where things are and aren’t working. But it is also true the devs for the apps might end up finding out the OS is actually easier to work with compared to what they have been doing/dealing with on Android/iOS.
Getting a replacement for X11 has been needed for a long time as the OSes and features keep needing something new to better work for how computers have advanced. And it isn’t something that many devs would want to take on given how easy it is to just use what is already known. Since Wayland has finally gotten to the point it is now, it is time for more devs to start learning/moving to the new thing to get attention to the stuff that they need. The hardest part is this in between period for users as it can and will cause random issues (like the ones you have seen). Stability is important, but Linux is great because there will always be distros and projects that keeping the old thing running well is the main objective. So we are in some great times for the new to be pushed hard so it can become the stable future needed.
Been trying to think of a term for this issue. It’s not quite chicken or egg. But both sides need the other side to incentivize them. If one gets going the other will follow, but they’re waiting for each other. Like some sort of collaborative standoff.
Wayland nearly doubled my battery life lol
I don’t see why we need convincing that Wayland’s better. Most Linux users either use it currently or are possibly looking to switch in the future. The other people who are not are likely going to use X for eternity
I think real X11 fanboys are almost non-existent. Wayland wouldn’t be so rejected if it wasn’t that it still has a lot of compatibility issues, I think most people just want everything to work and don’t care whose fault it is.
I remember some 10-15 years ago when I’d look at the y windows website every couple of months hoping for some news of progress, simply because I was sick of x11 being so crappy. I hated it, it was so fiddly, it didn’t work right, I just wanted something that worked.
So you can imagine how happy I was when Wayland started taking off. Here was the promise of something better, something that just worked, it sounded amazing. And yet, today I’m still running xorg and I will be for the foreseeable future.The reason is simply that in the time passed xorg just became usable, I don’t have to think about it, it works reliability, it has all the features I need and I hardly ever have to touch it. Meanwhile, I log into my Wayland session and instantly 3 or 4 of the applications I use daily either don’t work or act weird. I go and try and fix the issues and I’m told to just accept it, or that I actually don’t exist because Wayland works perfectly for everyone. And I’m not even using an Nvidia card, just plain Radeon.
So I quit and go back to what works. Maybe in a couple of years, until then: no thanks.
It’s super impressive to see Wayland having its big breakthrough moment. I remember reading about Wayland 10 years ago and worrying it was going to end up as a dead project.
Oh boy, the Phoronix’s comment section 💀
Phoronix’s comment section is usually full of trolls, shills, and people afflicted with brain rot. So I don’t even bother reading them anymore.
Don’t forget the OMG Ubuntu comment section
Until my distro forces wayland on me I’ll stick with xorg+XFCE. I’ve played with sway and hyprland but I need my application choices to actually work well. (no I’m not going to list them).
As for the cube desktop in the image: We had this with compiz and learnt then that this is pointless.
Why are we back there?
XFCE is working on Wayland support ◉⌣◉
No blame on the XFCE devs because they’re trying to get a lot done with few people, but XFCE just managed to transition to GTK3, I wouldn’t hold my breath for comprehensive Wayland support any time soon.
They’ve made great strides towards Wayland support, considering that the vast majority of the work is being done by 1 guy.
It’s not just a lack of devs that’s contributing to slow development time either, it’s also the fact their goal is to port every single component to native Wayland without relying on Xwayland at all; which is obviously going to take way longer than just porting the essentials and saying “fuck it, use Xwayland”.
I~~t’s not fully supported, parts of it do and the rest still uses xwayland where possible. https://wiki.xfce.org/releng/wayland_roadmap~~
most of the apps I use are shite with xwayland.Sorry, my bad, too many crimbo drinks.
Enjoy your drinks
Work on your reading comprehension skills ◉‿◉
There’s a big difference between Working on vs is working. They’re Working on a full port, other than that you have preliminary access that’s not intended for casual users; only developers, tinkers/enthusiast & testers.
This design document is intended for Xfce developers to begin brainstorming ideas for future development. This is a work in progress and does not imply any future implementation commitments.
Should’ve been your first hint.
Lol too many already
It’s pointless, but it’s customization.
Either way, XFCE already has plans for Wayland support
Someone just made it because its funny?
I love Wayland until I don’t. I honestly don’t think about it, it gets out of my way and my system is stable, until I go to use something like scrcpy that just doesn’t work at all. Luckily, the amount of things that straight up don’t work is shrinking.
Undoubtedly Wayland is the way forward and I think it’s a good thing. However I wouldn’t piss all over X because it served us well for many years. My LMDE 6 still runs X and probably will for the next 2 years at least because both the Mint Team and Debian team don’t rush into things. They are taking it slow, testing Wayland to make sure no-one’s system breaks when they switch to Wayland.
This is the best approach. Eventually it will all be Wayland but I never understood why this is such an issue. Like any tech it’s progress, no need for heated debates. It’s just a windowing system after all.
Nvidia on Wayland moment
Gaming on wayland moment
Battery/Usage on wayland moment
KDE devs making gestures only available on wayland because memes (there is literally a 3rd party github script to achieve the same thing on X11)
X11 being reliable because Xorg devs aren’t stupid
My real issue with Wayland is that it took like 15 years to become acceptably usable. I’ll switch once XFCE moves over in several years, but until then, there is no incentive for worse performance and non exitestent support.
X11 being reliable because Xorg devs aren’t stupid
Not gonna disagree with the rest of what you said, but the Xorg devs and Wayland devs are mostly the same people
They’ve been working on the same software for 20+ years?
Woah.
X11 being reliable because Xorg devs aren’t stupid
xorg devs are wayland devs. nowadays, most of the people that used to work on xorg now work on wayland. they’re not stupid, they realised that x11 is too dated for modern systems (see asahi linux) and now are working on a replacement
It’s not about reliability though, X11 is hard to maintain and the devs themselves feel burned out. Wayland at least offloads some of that burden to the desktops
Exactly. For 10 years the groupthink was that Wayland doesn’t offer anything interesting and X is just fine. Now suddenly everyone who’s still using X is stupid. Amazing what couple of memes can do.
it’s that wayland wasn’t ready, and now is ready. it took a long time, because building a new protocol like that takes a while if you want to do it well, and lots of coordination between many people. it still has issues, but they’re being adressed. slowly, because x11 was full of half-assed solutions done quickly, and they don’t want that to happen again
This is the best summary I could come up with:
Well known KDE developer Nate Graham is out with a blog post today outlining his latest Wayland thoughts, how X11 is a bad platform, and the recent topic of “Wayland breaking everything” isn’t really accurate.
Nate Graham acknowledges current gaps in Wayland support but on the matter of “Wayland breaks everything” isn’t really the right perspective: "Look, if I said, “Linux breaks Photoshop; you should keep using Windows!” I know how you’d respond, right?
You’d say “Wait a minute, the problem is that Photoshop doesn’t support Linux!” And you’d be right.
Because there’s nothing Linux can do to ‘un-break’ Photoshop; Adobe needs to port their software, and they simply haven’t done so yet.
This porting is necessary because Wayland is designed to target a future that doesn’t include 100% drop-in compatibility with everything we did in the past, because it turns out that a lot of those things don’t make sense anymore.
For the ones that do, a compatibility layer (XWayland) is already provided, and anything needing deeper system integration generally has a path forward (Portals and Wayland protocols and PipeWire) or is being actively worked on.
The original article contains 395 words, the summary contains 187 words. Saved 53%. I’m a bot and I’m open source!
Scram, tin man.