Wayland breaks your bad software
orowith2os.gitlab.io
orowith2os.gitlab.io
> X11 is, to put it simply, not at all fit for any modern system. Full stop. Everything to make it work on modern systems are just hacks. Don’t even try to get away with “well, it just works for me” or “but Wayland no worky”. Unless your workflow (and hardware) comes from 20+ years ago, you have almost no reason to stick with Xorg, especially as it continues to get worse and worse when the user experience relies on newer and newer features.
This is not a great way to start an article. You are not going to convince any "it works for me" person to try out Wayland with this attitude. I'll say it: X works for me, what's wrong with my 20 year old workflow?
> Xorg, from the very beginning, only ever had to deal with one display. It did originate from around the 1980s, after all. Having more than one display wasn’t even a thought in their mind, let alone ones with different resolutions and scales. The official docs even consider a “Display” to be the entire Xorg server, with all of its screens combined.
This paragraph seems to imply that X does not work with multiple displays, but I have never had issues with those.
I have nothing against Wayland and I think there are good arguments in favor of it in this article, but they are presented in a bad way. The author seems mad at users for... Not wanting to change a working setup? Do they not realize that most people only care about windows being shown, and not about how messy the internals are?
Sorry, not sorry. It works for me.
I had issues with it, and it's honestly the main reason I switched to Wayland. And while I don't regret that decision, I live in constant annoyance of all the little things that used to work but just don't now.
Wayland and/or its implementations are just not feature complete, and in many cases are a step backwards in UX.
I think it's great people stay on X. I wish I could have.
https://ptgamr.notion.site/xrand-4k-mixed-monitors-7a026e534...
^ maybe this would be useful? This seems like a pretty simple single run of xrandr that configures multiple (three, even) monitors on X all at different resolutions and ending up at different display scaling (including one fractional scaling). Like, looking at this, I feel as if I should be able to get this working myself, were I to have multiple monitors (I don't on my Linux laptop).
FWIW, I love the idea of helping someone not be sad about having to switch to Wayland by getting them back on X with all of their happy software working, and so if you want to try to debug whatever your issue was together, I'm game. To me, what makes Linux fun is all of the random combinations and hacking we can do together, and it just seems like people are both losing that ethos and even saying we are wrong for enjoying it, and that makes me a bit demoralized :(.
There are some restrictions because of this. One is that per display scaling is unsupported in the worst case, or a hack in the best case.
Another is that the virtual display is always a rectangle, meaning that if you have different resolution displays, you end up with some parts of the canvas not being displayed anywhere. Most window managers and desktop environments know not to place window contents or UI chrome there (like panels), but the space is still there, and you can see this when using screenshot utilities which simply write the whole canvas to a file. Your mouse pointer can also hide in these invisible sections.
Getting X11 to display content on video outputs located on different video cards from different vendors can sometimes feel like a dark art, but other than that it mostly just works.
2) Regardless, the person I'm replying to was using i3 (and is now using Sway), so I'm thinking that a lot of these limitations don't matter much? I mean, with i3 you aren't even going to ever have a window crossing the boundary between two monitors much less ending up off-screen somewhere.
3) I use a ton of random monitors at wildly different resolutions on Windows and frankly it's the same thing: there is a conceptual bounding rectangle for all of the monitors and you can absolutely have Windows hanging off the edge of monitors; also: I don't know how you expect anything to support non-rectangular screenshots so all of my screenshots on Windows--as well as my VNC servers--all have the same behavior with dead space.
4) Ok... I guess I can see the mouse thing being really annoying (as on Windows at least my mouse is locked to the visible area), but it doesn't seem to actually be the case? Again: maybe this is a documentation issue?
https://stackoverflow.com/questions/34092554/x11-restrict-mo...
It's possible the link you sent would solve the issue for me, but at this point I don't really have the energy to load up X and try again. I've since switched out a bunch of my workflows to adapt to Sway and the interruption would cost more to me than just living with the Wayland bugs.
You used to have to write a custom Xorg.conf with like modelines and shit for each display, but it was doable. But custom Xorg.confs haven't been needed for like, decades. There's some WYSIWYG multi-display setup in KDE Plasma, which just works, and I'm pretty sure GNOME has some equivalent as well.
The most popular desktop operating system, Microsoft Windows, takes an entirely different approach to backwards compatibility. Do I have to ask why it has the market share and not Linux?
Apple regularly makes sweeping changes to MacOS and expects apps to adapt, and MacOS is pretty popular.
Linux is a community project, not a product, so market share is not important. There’s no reason to chase after users unless they are likely to convert to developers.
The graphics stack developers appear to like Wayland better for some reason. I’m sure some day it will be better than X. Some day…
Windows desktop market share vs Apple has been dropping, and Linux is slowly creeping up as well.
...to a mere 73%? That's not the most compelling argument.
https://www.statista.com/statistics/218089/global-market-sha...
Below a certain threshold no one is buying Apple, as they can't afford to, and after 20 years GNU/Linux managed 2%, maybe will reach 5% in the next 20 years at current velocity.
Android, ChromeOS and WebOS don't count, as it is irrelevant for users and respective app developers, that they are powered by the Linux kernel.
Maybe it is just a really good design.
I like i3, so I can switch to Sway easily, there’s just no reason to.
Sway is mostly OK but i3 and all the supporting X stuff I had was incredibly solid and all just worked together. Enter Sway/Wayland, and some things are in XWayland some things are native so they can't talk to each other, there are constant display bugs, Waybar is glitchy, screen sharing is a nightmare, fullscreen mode doesn't work for floating windows, fullscreen windows aren't transparent and show black instead of my background photo (because "security"). I just kind of hate it. I recently updated Sway and my dropdown terminal no longer focused when I opened it...I'd have to click to focus. I ended up reverting. It's probably some perfect storm of lagging support from apps, bugs in Sway, bad AMD drivers, and a protocol that's, sure, more "correct" but kind of gimps the overall experience.
If you're happy on X, stay on X. It all worked fine before my laptop died and I got a new one with a different resolution than my monitor. I will say though...multi-monitor support in Sway/Wayland, with scaling and all that, is excellent.
There is a reason why they basically only dominate in traditional UNIX headless workloads and nothing else.
After successfully cloning Bell Labs UNIX, that was it. Hardly anything new on the Desktop space, that isn't being rebuilt or forked every couple of years.
Well then it's a non-issue; neither X11 nor Wayland are needed for that.
> After successfully cloning Bell Labs UNIX, that was it. Hardly anything new on the Desktop space, that isn't being rebuilt or forked every couple of years.
So... it it nothing new, or is it constant change? Because those seem contradictory.
While the proprietary OSes do rebuild their stacks, there is an amount of tooling put in place to ease those transitions.
So yeah, in the end it is all about UNIX servers, which aren't even a thing on container and serverless workloads, or headless POSIX compatibility on some IoT device, if they aren't using other FOSS OS like Zephyr/FreeRTOS/NutXX/Tock/mBed, both cases with a WebUI as management interface and that will be it.
That's not actually true, but more to the point, the proprietary OSs are also from the 90s and just keep extending themselves.
If you need help, I guess rotating cubes for changing virtual desktops could be an example, which is a kill feature in GUI design space.
If you're using nVidia, everything that uses xwayland is still a flickery mess. Explicit sync patches are looking good, but those patches are not in a release of xwayland and the driver side is not yet available (but in my experience, just the xwayland support helps 99% of the problem).
KDE Plasma 5.x has a ton of bugs on Wayland that were fixed with 6.x. But 6.x hasn't filtered down to everyone yet. Plasma 6.x still has minor Wayland-specific bugs I've noticed that they're slowly cleaning up in the point releases.
Wayland only recently gained a real drag-and-drop protocol. Dragging windows, say, from a Chrome or Firefox session, doesn't work well. I've noticed Chrome beta implements the new protocol and it works great, but still unavailable.
It's almost there though. Wayland's massive performance improvement over Xorg, and its robustness (https://www.youtube.com/watch?v=u4HnwqidYFo) has convinced me to stay.
And it's the clear future. Most Xorg development has moved to Wayland.
I mostly use Wayland nowadays, but there are still times I need to switch to X11 to get things to work.
Telling me this is because the software I use is bad is not at all helpful. I'm trying to get something done, and sometimes I can't choose different software and almost never do I have the ability or time to fix it if it doesn't work on Wayland.
Not the time to switch for me, sorry.
To sum it up: Your subpar experience wasn't the fault of Wayland or Mozilla, your distribution is to blame for this (as making the combination of software shipped work well together for the user is the job a good distribution does).
That said, even without setting the environment up correctly, I never had a keyboard input issue - so it could be snap... Canonical to blame, again - maybe.
(Need I say I no longer use Ubuntu, despite it being my main distro since 4.10. My parents are still on the LTS train, I will move them to a different distribution once I find the time.)
To sum it up: Your subpar experience wasn't the fault of Wayland or Mozilla, your distribution is to blame for this (as making the combination of software shipped work well together for the user is the job a good distribution does).
That said, even without setting the environment up correctly, I never had a keyboard input issue - so it could be snap... Canonical to blame, again - maybe.
(Need I say I no longer use Ubuntu and will move my parents to a different distribution once I find the time?)
Wayland tries to solve problems I don't have, while creating actual problems for many people like myself. It's a serious downgrade for me, so I'm staying with Xorg.
Same thing with neovim actually: a solution in search of a problem. I don't care for treesitter (it's slow, buggy and makes my code look like a Christmas tree on steroids), I don't like Lua and I have no use for an LSP. I'm staying with vim, on openbox, on Xorg, on Debian.
I would highly recommend reading through some of these blog posts who expound upon the problems of Wayland more eloquently than I can [2,3,4].
[1]: https://en.wikipedia.org/wiki/Waterbed_theory
[2]: https://dudemanguy.github.io/blog/posts/2022-06-10-wayland-x...
[3]: https://pointieststick.com/2023/09/17/so-lets-talk-about-thi...
[4]: https://utcc.utoronto.ca/~cks/space/blog/unix/WaylandTechnic...
I get that Xorg is terrible, but Wayland has been around for 15 years at this point (the article's "Unless your workflow (and hardware) comes from 20+ years ago" jab falls a bit flat). It is closer to the X.org server's release than to the modern era. There were good people with big ambitions involved, but the Wayland protocol is an example of a mis-design that had to be made to work despite itself.
The problem here is that open source volunteers would rather work on the shiny new thing rather fix the old messy code, and I can't really balme them for that.
On Wayland three is no xdotool, but there is ydotool (and a couple others). However for some reason they are not reliable (with and without xdotoold) and most of the times the pasted uuid is missing letters. I managed to get around this by using the clipboard to copy the text, and then I can manually paste it, but it's a extra step. Plus I have other scripts that deal with emojis and other Unicode characters, and it's either been a pain to work around or "It just doesn't work". I switched back to X11, and I'll probably stick with it a few years more.
But I'm still confusing, linux is the best platform for customization, and allowing you to automate things. However wayland seems like a block. I understand that it's a more modern project, probably more optimized and everything, but unless I'm missing a key toggle or tool to allow me to automate things, I'll try to avoid it.
> It’s perfectly valid if you’re staying on Xorg because some features don’t quite work just yet, especially when it comes to accessibility. But that ship can only keep floating for so long.
It has been fifteen years. Eventually the conversion largely moved from "well just don't use that feature" to "someday we should provide that" with occasional breakthroughs to "okay, it works in these 3 compositors so that counts, right?" There was a time when I joked abut Wayland reaching feature parity around the same age X was when Wayland started, but it's not a joke anymore.
> Try out Wayland every once in a while if it doesn’t work for you, and keep an eye on the relevant discussions.
I did, once. Eventually it got old and I stopped paying addition.
I think I’ll end this off with:
Wayland: it’s all TODOs, and not all of them work.
For "real" wayland, sibling comments are correct that you'd need a wayland compositor that reimplemented awesome.
There are many awesome-like Wayland compositors though, I've used sway, hyprland and river.
X is stuck in the past, and Wayland might already be too late, in the age of WebUIs, no mater at all.
Everyone who mentions its bad fails to mention what is bad about it. You're writing an article saying its bad, and you didn't read the code or do whatever is needed to tell me what exactly is wrong with X11? Chestertons fence says hello, I guess?
Signs suggest it is genuinely unmaintainable. The only problem is the replacement was secured against common user tasks being possible and un-securing it has been a long, slow and painful process of community negotiation. Although we're probably most of the way there by now.
Not ready for prime time. Alpha quality. Sorry. Maybe later.
Fortunately, with Plasma 6, it's night and day from that, and even with 5.27 which Kubuntu 24.04 will ship, things are a lot more solid already.
I've gone back and forth on wayland a few times now. It has both good and bad sides. Major functionality holes are finally getting plugged.
But the quality and stability of the compositors just isn't there yet compared to X11, and when leaving QT and GTK widget sets, almost nothing is fully baked. Presumably, things will get better in a few years.
That said, even the bleeding edge Plasma 6 (which has the most complete Wayland support and then some) doesn't work well in Wayland mode yet, it has plenty of issues with drag-n-drop, cursors, portals, much-hyped fractional scaling, and many other things (I still can't calibrate my drawing tablet display, for example). The overall experience beyond very basic features is flaky and unfinished.
I'm not even starting on implicit/explicit sync debate, that's a complete shitshow that can only be blamed on Wayland devs (regardless of Nvidia).
This is HN and it would be cool to show support to the technical improvements and the security benefits of the whole wayland stack. Its fine if it is "no worky" for you. The goal is get it to work for everyone and actual reports on what does not work is much more helpful than philosophical arguments about wayland that have been ongoing for years.
Also you are not being forced to use it. Stick with i3, its fine.
I think there are already quite a few user benefits that come with wayland and for me wayland and XWayland works very well for all applications I use with the exception of some java guis. (that is also being worked on)
All of that beeing said, developing protocols and implementing them on multiple sides is just a slow process and we are not 100% there yet.
So kindly shut the fuck up, use Wayland, and let the adults in the room chart the future for graphics on your Linux system.
I get that you are being performatively rude… well, I don’t know why, maybe as a rhetorical device or maybe just for fun.
However, in the context provided by the article:
> One major thing to note about Wayland is the lack of accessibility software for it
your comment
> Please don't comment about how your X desktop is fine, or how Wayland doesn't work for your obscure, niche little use case.
is actually super shitty, you are being a bad person here. Not in a fun, silly trolling way, but in a telling people with accessibility issues that they don’t matter way.
If the BSDs and Illumos are dragging their feet getting on board, that's the BSDs and Illumos' problem.
So yeah I can shut the fuck up, but I am also not going to listen :)
Well, maybe macOS; we're not animals ;)
Can you do HDR in X? No, you can't.
int adp_open(struct inode *inode, struct file *filp)
{
if (current->comm[0] == 'X')
return -EBUSY;
return drm_open(inode, filp);
}
but:
(a) You know what "adp" stands for? It stands for Apple Display Pipe, or the touchbar.
(b) Back when I was dailydriving asahi, I actually had to patch that to check for 's' instead of 'X', because sway dies on this exact thing too.