The technical merits of Wayland are mostly irrelevant
utcc.utoronto.ca
utcc.utoronto.ca
There are plenty of technical differences between how KDE, Gnome, and Wlroots that just cause more work for me. Perhaps most popularly Gnome is dying on the hill of "client side decorations", meaning that without mostly Gnome specific code you will get no title bar. KDE and Wlroots do upscaling different, KDE upscales with video in mind, Wlroots upscales with text in mind. There is no way to specify how a client would like this upscaling to be done, so to get consistent display you have to do the upscaling yourself. Some other minor annoyances include having to implement key repeat yourself, and no standard way for programs to cause a mouse movement.
Like this article mentions I use wayland because it's the "only game in town", but after porting drawterm I became fairly unimpressed with the technical design.
A "simple" solution to a necessary complex problem is just kicking the can down the road, and essentially asking everyone to invent their own incompatible wheels to fill in the missing bits. On X, there's enough flexibility for me to pick a DE and window manager separately, due to the standard modularization, whereas on Wayland, I have to check the compatibility of a screenshot tool with my desktop environment [1], and whether my DE even works with my graphics card! Everything becomes tightly coupled due to the lack of standards
[1] unlike some I actually do support the move to not let any app read the screen or global KB input, but the interface for those that do should have been part of the Wayland project, not just "not our department!"
Isn’t it one of the points of content type hint ? (https://wayland.app/protocols/content-type-v1)
It's obtuse in a way that might have made sense when first invented (e.g. slotting an arbitrary request byte in the request header for some requests because there's a free byte otherwise used for padding so that the request length can be 16-bit aligned) is just pointlessly stingy now. The way length fields and the lists the refer to might not be adjacent in a packet, likewise.
But then I looked at the Render extension, and realised the problem was less the original protocol - it's easily extended after all - but that the people writing the extensions were so steeped in the same thinking of overgeneralising.
E.g. the Render extension very sensibly - given we've mostly settled on a few formats - dictates a set of visuals that must be supported. Surely then they provide an easy way of obtaining it? No. You need to retrieve every single visual supported by the server. Surely the Render extension will just default to force clients to apply some godawful slow path if they want some bizarro format? No. But they'll at least make it easy to get the default formats everyone actually wants? No - you call a function that provides values for all the visual fields, such as depth, mask for red, green and blue bits and many other things, and then checks that mask and a bitfield determining whether you care about those things, against every single visual reported by the server.
After seeing that - dozens of lines of code whose sole purpose is to work around the fact that the server extension written by the same people doesn't tell you the ids of the required visuals - I went looking at the Wayland spec in utter disgust.
You could easily "fix" X in a aggressive but gradual way in a lot less time than Wayland - the biggest argument for Wayland is not technical, but not being mired in that culture, I thought.
Only to find it's pretty much equally obtuse and overwrought, only in different ways...
I expect to have to bite the bullet and move to Wayland eventually, but it feels very much like a lateral move with no upsides I care about and a lot of efforts that'll make me swear (I used bspwm, there's no port, so I'll need to figure out which of the tiling compositors are somewhat close enough, especially given I heavily rely on bspc to change bspwm's behaviour) and I'll resent every part of it.
I really I wish we got a timeline where someone instead aggressively deprecated old functionality from Xorg in several rounds of purges.
now I understand why pressing "Supr" on Eclipse, doesn't repeat and removes anything more than a single character. Pretty anoying
Or at least until things start breaking, or maybe until Wayland has e.g. stellar HDR support and I'll get a nice OLED monitor. Otherwise, no dice.
I know that X is a crusty old spawn of Cthulhu; but honestly, I don't really care? It just works! I set up my system 10 years ago with how the UI works (including my window manager), and it stably works since then without me having to ever fiddle with it. The fact that X's development is dead is also a feature, because there's no churn!
And when I see other people complaining what still doesn't work on Wayland (where everything works perfectly for me on X) I'm like, eh, I don't have the time for fiddling around; maybe I'll try it out some other day.
> 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.
My workflow is probably 20+ years old because not much has changed with software in the last 20 years. My computer is getting close to 10 years old. It works fine. X doesn't get worse and worse; it continues to just work. Sort of like apple fanatics claim, except it's actually true.
I'm not worried about running a keylogger or something that's going to surreptitiously capture my screen. It's not a major issue. It's not an issue at all. Never comes up.
Maybe I'd care more if I were running multiple monitors each with different scaling factors and refresh rates, but that sounds pretty niche. I still don't see a reason to want Wayland as a user.
Yeah, I don't get this argument. If a process can already run on my account then I'm screwed anyway. It's trivial to e.g. do some bash magic to transparently replace `sudo` to get access to root without me knowing, and then hook into e.g. evdev to keylog every keystroke regardless of whether it's on Wayland or X11.
Unless you sandbox everything (and no one does that on a normal desktop) Wayland's extra "security" guarantees are completely useless in practice, because they're trivial to bypass.
How so? If you run a program that you trust, like "ls", "vim", "firefox", "cat" or "rm", then you absolutely want it to be able to access all your data. That's the whole point of running a program: to read/write your data.
If, for some reason, you want to run a program that you don't trust, you can run it easily inside a container or a virtual machine.
I fail to see how this is a "security disaster". It seems very sane to me. How could it be even better?
So basically you're calling almost every modern laptop + external screen setup "pretty niche". I wonder whose post is more silly.
I just got a new laptop for work last month. HDR 4k display. It's still 60 Hz. More only matters for people who are really into gaming, and then you wouldn't be using a laptop.
> Most people probably don't even know scaling options exist, so using different ones on different monitors is going to be niche, yeah.
If you don't know the thing exists, that doesn't mean you don't use it. Modern OSes adjust scaling automatically for the screen DPI. Otherwise using configs like Retina MacBook + 1440p displays, or 4k laptop + 4k external display would be very painful.
I have everything set to 100% scaling because that's a low as you can put it. The defaults had my laptop at 250% (!!!) and external monitor at 150%, which makes the laptop in particular look like some cramped 800x600 monitor out of 1995. In theory I'd like to have my external display be at something like 75% because it's so much larger than the laptop, but I've never seen any OS support this. Does wayland let you do fractional scales like this?
Edit: I also just tried plugging my 4k monitor into my Linux laptop (with a 1920x1080 screen), and it at least defaults both to 100%, which is more sane than "modern" windows. Again I'd probably prefer 75% scaling on the 1080 monitor because things are otherwise too big.
When I had my previous laptop, it had 100% for 4k@16" in Linux by default, and it was causing me a pain in the eyes. Switched to 200% back then, because fractional scaling in Ubuntu wasn't working well.
I'm not sure if it's possible to have scaling less than 100%, I just never thought to make things smaller, not bigger.
I don't understand the point of a high resolution monitor that you scale up. Just to have extremely crisp lines? To me the whole point of a high resolution is that you can have more information on the screen because it remains legible when small. Why not just use a low resolution monitor, which will be cheaper, use less power, and need a less powerful computer/gpu?
Also, is that 60 or 59.94 Hz? Both exist
Most of the time on a normal boot, the xfce display app will apply my saved config and the monitor works, but several apps like kicad somehow glitch out something at random times and I lose both external monitors as though the dock were unplugged and then replugged.
What that happens, it's an extra level of ridiculous. I have to use TWO different apps to recover.
First I have to use ArandR to reset the layout with left, right, and center screens. The normal xfce display app does not work for this even though it does at other times. Trying to click on the little scteens doesn't do anything. But ArandR works.
But ArandR has no way to set the 170hz one back to 60. For that, I have to go back to the xfce app, which is now working after ArandR fixed whatever it fixed.
Then I can resume work. Sometimes for only a minute before it happens again.
It's completely ridiculous and has spanned a few different monitors and docking stations and tb3 and tb4 cables. The one constant is the Framework laptop after upgrading to the i7 1280p motherboard.
Anyway, monitors with all kinds of framerates are now the norm. I'm not even a gamer. I didn't seek out a high framerate monitor specially. I just wanted a good monitor in general with a type of stand that would not waste all my desk space. I think the other monitor can do 120 too for that matter, but somehow is better behaved and doesn't try to when it won't work. It's the norm.
(And no, if Nouveau is an option for you then you probably wouldn't have a dGPU in the first place.)
Not only nothing was miserable, but the NVIDIA dGPUs have allowed applications that are still impossible with GPUs from other vendors, e.g. professional applications using OpenGL that expose bugs in the drivers from other vendors or that have a too low performance on other hardware, or computational CUDA applications that benefit from the many useful libraries provided freely by NVIDIA.
For simpler applications AMD and Intel are fine, but unfortunately there are still many cases when there is no alternative for NVIDIA.
NVIDIA may be criticized for the greediness of their pricing policy or for the slow progress towards providing an open-source kernel driver, but claiming that they offer a miserable Linux experience is completely false.
Very few companies provide a similar level of Linux support, despite the fact that there are some kernel developers who continue to try to sabotage the work needed for maintaining the NVIDIA Linux kernel driver.
NVIDIA provides much more free Linux tools for their GPUs than any other GPU vendor.
I think some systems might be forcing breakage into it: I recently upgraded from Ubuntu 18.04 to 20.04 (had to wait for approval for work laptops, and I keep my personal one at the same release as a reference point) and with that upgrade did I start seeing a weird visual glitch, where new windows would be covered in static for a second before drawing.
> Maybe I'd care more if I were running multiple monitors each with different scaling factors and refresh rates, but that sounds pretty niche. I still don't see a reason to want Wayland as a user.
I don't remember how anymore, but years ago I figured out how to do different scaling factors with xrandr. It's just not exposed through the GUI settings.
I don't have any screen tearing on X11.
Although I can't tell you if that's how it was out-of-box, or if I set it up to be tear free, because... I don't remember.
Remember the part about things just working and me not having to do anything with this for many years? Yep, that's why. (:
- keep using X and stay healthy
- switch to Wayland and get strong nerve pain again
- switch to Windows or Mac
If Wayland were my only option, I would have to leave Linux for my health. So the technical merits of Wayland truly don’t matter.
Accessibility is an oft forgotten requirement and it’s something that can affect all of us at one time or another. We ought not ignore it.
* What is your condition exactly?
* What were you using on X that made you healthy?
* How is it broken on Wayland?
I use Talon. It simply doesn’t support Wayland, and I believe its maintainer who says that there are issues with Wayland which make support infeasible. Using it on X makes my nerve pain much less.
* Where did they say that?
* What are the issues?
I am trying to narrow down exactly what the issues are. Too much of the conversation is 'something' is broken in Wayland because of 'something'.
talks about it at length.
It seems the main things missing for Talon are:
- input emulation, doable via uinput but not great - standard way to query the list of windows and active focus - for dwell-click support, you need to be able to know if the user is moving their mouse or clicking so you can cancel your autoclick
Well my WM for a start. It did not migrate to Wayland.
And I also need to share screen from time to time (teams, Google chat, etc), which results in a dark screen for viewers in Wayland.
Any updates from Microsoft on this issue?
Since Chrome/Chromium supports screen sharing with Wayland, it simply just works for me nowy while it never worked with the Elecrton-based desktop application.
Thankfully, my employer uses Google Meet for most of the meetings.
* Have they posted what is blocking them? Besides a lack of hands on keyboards?
I am trying to narrow down exactly what the issues are. Too much of the conversation is 'something' is broken in Wayland because of 'something'.
I think overall the problem with Wayland is that there is no user facing improvement over X that I know of.
I have no doubt it's more modern, better engineered, or whatelse. But in the end, the days of fiddling endlessly with your xorg.conf are over, and X _just works_ out of the box on any distro / device.
All Wayland bring me is a switch of WM, and some bugs when screensharing, for no visible benefit.
The only hope of value add I can see with Wayland would be per-monitor DPI. But last I checked, it was hackish at best.
But even trackpad support is kind of messy at the moment; gestures work but pointer speed just seems weirdly different no matter what.
- Hardware support. NVIDIA support is spotty still. Easily the biggest issue IMO, though it's better than it was.
- Network operation. X will always be better here because it was designed to be (at least with toolkits that can still take advantage of XRender.) That said, Waypipe can work well too, but I find myself needing to tweak it for best performance. Having a better out of box experience would be nice.
- Apps. Electron and Chromium still default to XWayland and still have a laundry list of (mostly small) issues. VS Code currently is unstable in native Wayland mode. Qt QDockWidget works poorly in native Wayland: it was unusable in Qt 5. OBS crashes more often in Wayland, on top of being impacted by the dock widget problem.
(There are other issues, e.g. no obvious/general answers for automation, but these ones in particular make me weary of generally recommending people switch to Wayland.)
Until then, there's no point in pushing harder. These problems are showstoppers for many.
P.S.: Not all UNIX environments have good Wayland support but since its a common misconception, Wayland is not inherently limited to Linux and some compositors will run on BSD and there is even one for macOS, albeit more in the vein of XQuartz.
Excuse me, but BS. At least for anything of actual relevance.
X11 networking works okay for stuff that looks like a classic X11 app. That's things like xcalc. Any modern text editor, web browser, or anything else is going to be dog slow.
X11 has a bad networking protocol that's way too latency sensitive, and as a result is nigh unusuable without something like NX, which puts a local cache in front to get rid of that latency.
No, I'd say X11 wasn't designed to be run on the network, in that no particular care seems to have been taken to deal with latency and bandwidth issues. It's more of a feature that could be had for free, because if you can use an UNIX socket, you can also use a TCP one with minimal work, so might as well allow it.
That's just wrong. X11 was designed from the ground up to be used on the network. It just happens that nowadays requirements are different from when it was originally designed.
Running X11 on the network was quite a thing in Unis all over the world, where you could have dedicated dozens of X11 graphic terminal servers (tektronix used to make good ones) connected (100Mbits) to a single mainframe, and everyone running an Xemacs session without slowdown.
Wayland design is all about framebuffers, which clearly shows how focus has shifted. X11 was not designed for pixmap heavy, shader heavy scenarios.
Serving X applications (eg: Chromium) from the Raspberry Pi I'm targeting to the Mac I'm developing on is an exercise in futility, even if it does make 'download this to the target' easier. It's a lot faster to run Safari on the Mac and scp the download to the Pi, just because of interface latency issues.
Granted though, it does nothing for apps using Electron. However, try e.g. the Dolphin file browser on a 4K display over the network, and you'll find it is clearly faster than should be possible.
Probably I should've made it clearer, but imo the bigger problem is that tweaking Waypipe to replace old uses of ssh -Y shouldn't be needed; it should be possible for it to determine what possible options can be used and switch things around to deal with CPU or network bottlenecks most effectively. Easier said than done. There's also still some bugs under Waypipe; it's an understandably challenging problem.
Remote X over fast low latency networks is fine, a near local experience-- even running things like firefox or gimp. (And for classic apps it's indistinguishable from local). The wayland world alternatives like using RDP are painful to the point of usability even over a 10gigbit network, peg the cpu... and are really only good for rescuing something that's stuck or providing a bit of tech support.
Yes, over a high latency network remote X is sucky but seldom much worse than RDP.
That's very wrong, the whole point was to run over the network.
It worked exceedingly well even in the earliest 90s (modulo bandwidth expectations of the time) and continues to work wonderfully 30+ years later.
Modern apps draw all their UI client-side onto a surface which is then sent to X for display. IF ONLY we had a windowing system that was based around simply compositing together the various surfaces that the apps draw into a complete image of the desktop. Since this is a step away from the complexity of X, we could give it a name starting with W...
Don't know what to tell you, your experience is different.
Many of my computers are on a rack and I run everything on them over X displaying to my desktop. Works just fine.
Go ahead, I'll wait. Literally, I'll wait.
That is by no means clear cut - X is competing against specialist applications like VNC and there is a real question mark over whether a critical application uses OpenGL. X can easily win on toy benchmarks that play to its strengths, but it is rare in the extreme for that to matter.
Why do we need a remote server to provide a GUI that doesn't involve OpenGL? It happens, but not often enough to be an advantage. SSH + VNC is a more reliable and general combination, the X protocol is a maintenance and security liability. Personally if I'm logging in to strange servers I'd rather be learning cross-platform skills that carry between Windows, Mac and Linux.
I stay with X because it lets me have multiple independent logins with their own desktops. The last time I checked, Wayland doesn't support this, and this is well outside of what VNC does. This is a very important facility to me.
So the effect is a bit like VNC in that you can remotely access a desktop, but the desktop you see is not a copy of the one being actually displayed on the machine's monitor. It's entirely its own thing, only visible to that particular login.
Actually, not necessarily; you can use Xvnc to achieve this with X+VNC. It's an X server that serves over VNC.
Can Wayland do this? Yes! But, the problem is that there is no singular Wayland "display server". This is both a big strength and big weakness of Wayland. In this case, it means that I can't point to a single correct way you can do this. However, with the compositor I currently use, SwayWM, it's very trivial: I can start Sway inside of an existing compositor or X server to get a nested desktop. You could use this with Waypipe or X11 forwarding for example. It can also be started with wayvnc inside, to expose a VNC server from Sway, though this is not really any different from starting an Xvfb and running a VNC server inside of it.
Interesting. I remember asking some Wayland devs a few years back about this and they said this use case would never be supported. I'm glad that's changed! It means that if the day comes that I have to use Wayland, I won't necessarily lose functionality.
(Just for clarity, I'm not opposed to Wayland if it can do what I want. But I'm not excited by it, either, because the benefits it does provide are ones that don't really matter to me)
Does wailand supports window managers ?
Wayland doesn't have a single display server. Most of what was the X11 display server is moved to the kernel and libraries. So, the WMs ARE the display server.
xv, xpdf, xterm should work fine. xsnow should work, but will only see X windows. fvwm2, it can run on some Wayland compositors, but the better option here would be a compatible replacement: as far as I know, we still don't have an fvwm2 equivalent, but SwayWM exists as a replacement for i3, for example.
HDR support has been in the works for years. Why? Well, nothing terribly specific to do with Wayland: there has been a ridiculously deep dive into the entire space of color management, wide-gamut colorspaces, etc. to try to build HDR protocols that don't merely just get things out the door, but ideally support current and future use cases for the foreseeable future, have good backwards compatibility and handling of unaware apps, etc. These things are non-trivial and can't be solved by writing code or staring at GDB. (Not to mention there are few drivers that can currently support this, so it's also a bit of a chicken and egg problem.)
That is to say, Wayland is a lot less of a software problem than it is a design and social problem. And as you can probably see, ultimately, Wayland will be nobody's favorite, but hopefully with time, it can at least be everybody's favorite.
It is clear to me as a FreeBSD user that Wayland is primarily developed first hand for Linux.
To me, Wayland looks like a threat rather than something I should embrace.
I remember when it was a given that free software was developed to support a wide eco system. What happened?
“There is even one for macos” XD
There are some anti-patterns in the Wayland ecosystem that lead to arguably unnecessary dependency on things like DBus, but Wayland itself doesn't actually need much and you should find that SwayWM works fine on FreeBSD. However, the graphics stack and drivers for BSDs are a little bit behind, which is arguably a bigger threat.
From my experience, Windows RDP has always worked way better, and when we were confronted with the need of having to do RDP access on Linux, we always found the more primitive VNC far superior.
But even that is the past. Today you can stream your entire desktop over the network with highly efficient modern video codecs, courtesy of the hardware encoders built into your GPU.
Well, until it is, then I frankly hope that Wayland fails and is abandoned, because as it is now it sucks up all the mindshare of desktop Linux into what it consider a dead end: having each and everyone doing their own owner-draw. One can see the same in all these "cross-platform" toolkits that pops up, where all accessibility and themeability has just been thrown out the window (figuratively).
It doesn't matter if "everyone has been doing it like this for the last ten years": That doesn't make it right.
These people made things like drawing tablet support on X, as well as had the power of fixing all the little weird use cases you'd need for a truly large user base.
It's really funny that open source is bigger than ever, but Desktop Linux development has ground to a halt, and is in the hands of skeleton crews, and stuffy bureaucrats who enforce edicts like 'you aren't allowed to theme your operating system' and 'you must use the text editor built by our specific denomination' on a platform that's supposed to be characterized by being 'free as in speech'.
Seems like forever, the Wayland people are really out here thinking that 100 developers in a trenchcoat can be the same as a Steve Jobs, when, no -- please just make sure all the old stuff works.
For example, I have been using Pipewire for a while now, because I have to use a USB sound card intermittently. I don't think it is bad, but I wish I did not have to switch card so I could use ALSA directly. I don't care if PW is technically "superior", for me ALSA worked and I could get perfect audio even if the computer mostly hanged.
I use XCFE because I need to get stuff done and XFCE does not change the UI or move buttons around. It does not support wayland. I don't have time to fiddle with config files or to use a DE that churns the UI on each release.
The articles arguing for the technical superiority of <whatever> always sound like they are scorning the user for not recognizing the obvious superiority of the new thing. Almost like they considered anyone who does not adopt the new system stupid.
Not just articles. Have you never seen user pjmlp's posts here?
It also have a lot of very brain-dead decisions like moving a lot of what X did to the external tools and so now everyone making a desktop environment needs to worry about handling various input configuration or even to have working screenshots.
X might be crufty code-wise but it was right level of abstraction, allowing WMs and tools built above that to not care all that much about hardware and remain relatively simple.
Well, I open a bunch of windows, and switch between them, raise, lower, and sometimes move or resize them with a window manager. So yes, my workflow comes from 30+ years ago.
The critical component of most software is the design; performance doesn't matter much because half of X's old software was written when your computer having 500MB of RAM was impressive, and past a certain point being snappy is more of a nice-to-have (and yes, it is very nice) than an actual necessity.
Every piece of software has something you have to work around, every piece of software has small issues, bugs, and there's always some issue. Thus, 99% is pretty much "perfect", because you'll never get 100%. And therefore, for me, X11 is literally perfect. I have zero, absolutely zero motivation to change.
Frankly, compared to 20 years ago, X is a dream to use. Autoconfig, incredibly rich support for multiple monitors, compared to decades ago. It's wonderful. I love it.
I sort of feel like Wayland is in ipv6 turf. Always gaining support, but always blocked in a lot of places for some reason. I fully expect ipv8 to come out, with some sort of additionals for inter-solar routing or some such, before ipv6 gets fully adopted.
FWIW I do agree about the features problem, especially on Ubuntu - where I can only assume they have altered Wayland/Mutter just enough to break screen sharing. I don't have the problems on my personal NisOS machine, although to be fair I haven't used GNOME on my personal machine in >1y. Then there's also missing functionality, such as input emulation. I can absolutely see why someone wouldn't use Wayland from this perspective, even though I "deal with it" for one major reason:
Performance. Wayland uses significantly fewer resources than X - as demonstrated by laptop battery life (like-for-like, GNOME Wayland vs. X). I lose about 30% to X, which is 2 hours during light usage. There's also the latency - where I suspect that people who claim to "not care" have not experienced using a GPU accelerated terminal on a >=144hz display. People are adverse to change (which is fine), haven't tried it in earnest (which is also fine), and yet have strong opinions about how bad it is.
I have never cared about whether Wayland or X11 is better, I only ever cared that Wayland consistently broke my browser’s interactions with the rest of the system. I still don’t care what is underneath, I just care that my browser works as expected and I can tile a few terminals stacked on a screen with my browser full length on the side so I can view docs while I work.
I consider my workflow to be /very/ simple with low requirements and it still breaks with Wayland (or at least did the last time I bothered to try it).
These days I feel well served by a Macbook, but am giving Linux another go as soon as my Framework 13 AMD shows up. So I guess I will give Wayland another shot soon enough.
I used to use XFCE most of the time but I switched to KDE recently and I noticed it was a lot faster than it used to be. Plasma used to be laggy which is why I switched to XFCE but it's a lot faster now and well-behaved.
The last holdout for X for me was the inability to share my screen on Zoom or Google Meet. Once PipeWire became stable, that problem went away as well, which was a huge win for my work experience.
The network thing doesn't hold water for me. X11 forwarding has been useful in the past, but nowadays I find little use for it on my day to day.
All that said, I believe X will never really go away, and that's a good thing. Open source means the freedom to keep on doing what works for you.
Wayland will likely catch up though. A rewrite of this size was always going to be painful, but the tangible benefits for me was worth it.
HiDPI isn’t that niche of a thing anymore, having become common on upper midrange and up laptops. If only for that reason moving to Wayland makes sense.
Aside from that, with X11 it wasn’t that uncommon to see cases where the layers briefly became distinguishable with things like white flashes other drawing anomalies which made for a less polished sort of hacky feel. That mostly went away when switching off compositing, but most users aren’t going to be doing that.
These days that seems to be less of a factor, I gather that a new parallel system of standards have sprung up that technically haven't replaced Wayland but ... for all practical purposes everyone will need to implement the screen-sharing aspects of that world. The parts are slowly being put into place.
But final adoption depends precisely on what the distro maintainers think is a good idea with a little dash of whether it is technically possible for Wayland to work. We put up with X, so Wayland has a low bar to clear technically.
I haven't poked at Wayland in years, but when I did `ssh -X` didn't get the job done for many of the applications built for Wayland, even with XWayland.
I.e., an app that has not been updated yet to work with Wayland.
You can get an entire wayland desktop to display on an X11 backend. This was used in development when there were no display drivers compatible with Wayland but you still wanted to work on app compatibility, etc.. The flow will look like App => Wayland => X11.
Not sure how practical it is for your use case.
I’m holding out for that before I do much with the Linux desktop again. This split-desktop-system fiasco has dragged on for years and still sucks every time I pop back in to take a look. Maybe whatever red hat decides we’re all using next will finally get this right.
When I'm playing Cyberpunk 2077, occasionally the game crashes (hasn't happened often, but a few times), and when it does, the compositor fails until I kill the CP process. And while the compositor is failing, only the active window updates. The mouse cursor is invisible outside the active window. It becomes really hard to do anything. Until I kill the hanging CP2077 process.
From what I understand, my options are to keep the compositor active in full screen mode, which would hurt performance, because every signal has to pass through the compositor; or I could switch to Wayland which fixes this issue (though I'm not entirely sure how); or I just accept how it is.
Because I've got an Nvidia card, I'm sticking with X11 for now and accept the occasional crash. But once Nvidia support for Wayland improves, I'm switching.
It's not something I care to spend time debugging, since Wayland doesn't give me any other reason to chose it anyway. But I still try it once or twice a year to see if it has improved, and after several years of this I'm starting to think it never will.
I never even wanted a compositor, I always disable composition (because why have it working if I don't need it) if this can be done easily enough on a system I would use without making it too ugly. KDE has a handy hot key (Shift+Alt+F12 IIRC) for this - it helped me prevent crashes in the past and I still use it even though it became more stable.
Fuck that. I want to merge my window manager with my todo-list, and I want my work activity sectioned off from my personal projects. I want to pause my work applications when the clock hits 5PM, because otherwise they might knock a few frames off Counterstrike.
If you want a Windows-ish experience then that's fine, but don't project your lack of imagination onto the rest of us.
They shall work, much, much better than windows.
Working in MS Windows is a PITA.
By which I mean many applications seem to have got things solved now through their dependencies, so it’s possible to see this as unlucky. But there are still some rough edges.
Too many applications still need app-specific fixes and workarounds, and those are often complicated by e.g. needing to override the environment inside a Snap or AppImage or whatever.
My frustration, heading back to desktop linux after a long break, is the energy spent trying to learn these things feels a bit wasted at my age.
I have a couple of needs I want to use Linux for, and I may end up setting up entirely separate machines for each, so that I don’t need to constantly switch environments.
... like, can't click and drag a picture from Google Chrome into Files (Ubuntu 22.04). Switched back to X and it works.
All those choices should just be differently flavoured client-side APIs to do the same thing (opening a window for 3D rendering, and getting input events).
Frankly, I don't care what's going on under the hood, just give me an easy ui-framework-agnostic way to open a window to draw into (and most importantly where I don't need to draw the frigging title bar myself).
I actually wonder what happens if you run a Gnome app on KDE, or a KDE app on Gnome on top of Wayland, does the title bar look consistent in that case?
I guess I also don't understand why there are even multiple Wayland display server implementations with different feature sets. As if desktop Linux wasn't already fragmented enough.
I understand this is absolutely subjective but I just hate this phenomenon so much...
Compare that to Xlib/XCB where you just create a window and that automatically looks consistent (this is also why XWayland is actually a really useful piece of software for applications that just need a GL or Vulkan context but no full-blown UI framework like GTK or Qt).
If you run a "real" Gnome app (that uses libadawaita) on KDE, it will look exactly like what it looks like in Gnome (giant titlebar with stuff on it, no minimize button, etc).
* It broke screen sharing things
* It removed X forwarding
* It made my copy-paste life more complicated
* It made steam ui ever slower
Were these points fixed? what is the current usability of Wayland on these fronts?
Sometimes it's their annoying chrome-fork, steam-web-runner or whatever in a constant crash-loop in the background, eating all CPU.
Other times it seems like if a game or the UI gets launched accidentally or automatically somehow on the integrated graphics, I have to go hunting zombie processes with kill -9 to get things to shut down enough so that I can start them using discrete graphics.
Sometimes launches games and they're in odd geometry.
Running it on X instead of Wayland sometimes fixes problems. But then other times not. Unpredictable.
They're using a chromium based shell, but I don't have these problems with other things like that (Slack, Chrome itself, etc.) And Wayland support in the chromium stack is ... ok? So what gives?
But the Steam client is weirdly dodgy, even though it should just be a web UI that makes a few system calls. It's much worse than an Electron app like Visual Studio Code.
There's the next-gen Steam Deck UI which is less buggy but pushes a lot of graphics cards pretty hard.
What about screen sharing? What about global shortcuts? What about -X style network transparency?
I am not a fan of fake standards that aren't actually standards and leave important stuff undefined, inviting everyone to just leave out those things.
1. It disables GPU acceleration on Chromium/Chrome
2. A major regression introduced glitches on all the electron apps (slack, signal etc..)
I spent hours trying to troubleshoot those and dozens of flags combinations, nothing works. KDE + Nvidia + Electron/chromium apps is probably a very common set people use... Are the Wayland users still that fringe?
For better of for worse Linux is still in the phase where software which would only interest developers ends up interesting also the end users, just like we have people who don't develop or administer anything and yet have strong opinions on systemd or GCC.
This is false.
Bugs continue to be fixed.
Yes, features are already there, so they are not developed anymore. Is this bad?
Have a look at Xorg's git repo. Please.
Case in point: I have to use Wayland, because otherwise my Linux machine just can't reasonably drive my monitors (one 8K, three 4K, and one high-refresh-rate 1440p portable). Upon logging into any modern Linux, like Fedora or Ubuttnu or whatever, X will freak out, jank out with its crank out, and -- only if I am lucky -- finally show the desktop.
If I want to switch some/all of those monitors to some other computer for a while... good luck switching back.
And there is AFAIK no distro that supports mixed 8K/4K/2K monitors with working font scaling using X.
So I need Wayland for all that. Extremely relevant technical merits, for me. Not maybe for you.
Unfortunately, my workflow also requires being able to do remote desktop, and share my screen during remote meetings. Which doesn't work a blood clot on Wayland yet.
The TL;DR is that both X and Wayland have awful, crippling flaws that prevent pretty basic things from working.
Windows has always been able to drive this same setup, and do all of these things, without problem (on the same hardware). Recently, even Macs (M2 onward) can finally do so. Linux cannot.
So there are two main graphics/HID subsystems for Linux, and neither one works well for modern desktop computing with high-end/new displays.
But, only one of them is likely to someday work well. And it isn't X.
AFAIK x11 doesn't support this - at least assuming you want fractional scaling.
> Unfortunately, my workflow also requires being able to do remote desktop, and share my screen during remote meetings. Which doesn't work a blood clot on Wayland yet.
Last i ran Linux - screen sharing worked fine with PipeWire and chromium - is that no longer the case?
More power to you, pushing the limits. But frankly with this setup, you are in a tiny minority. What is your use case?
What is the technical reason that this works on Wayland but not X?
I've had one 4K screen since 2018, never had a problem. Other than the fact that older applications don't respect high-dpi so need manual tweaking, or need to be replaced.
I'm just one of those people who likes multiple monitors (one of the 4K is a TV on the wall, so often not in use).
I would like all the monitors to be 8K, but that's just too expensive for now).
...and there goes my coffee all over my HiDPI display. thanks for the laugh. I guess.
However they (oro) made me discover that emulated input arrived on Wayland, so we are nearing the moment where Wayland protocols and overlays ("portals") can reach (through some hacks) real feature parity with Xorg, EFL[1] and Arcan.
[1] Enlightenment, despite all its defects in DX, has a standalone compositor that draws on direct KMS
I'm assuming you're talking about [0], but I can't for the life of me figure out why you say this. It doesn't mention Fedora once!
> Since the inception of systemd (but this trend is older than systemd, take for example Ulrich Drepper's work on glibc) I tend to notice a pattern, and they are the same as the Apple fanboy stereotype (an endangered specie nowadays).
There's an insinuation here that should be spelled out rather than being made via oblique references to existing stereotypes. What exactly is the pattern you've noticed?
[0] https://orowith2os.gitlab.io/posts/wayland-breaks-your-bad-s...
It's run that way ever since (over 2 years now) and I've only had to switch back to X once or twice to make certain games work on Steam, or just to stop myself from pulling my hair out with OBS. Other than that, it's mostly unnoticeable. Pretty impressive from my perspective.
When I flip back over to X (because of Steam, like you say), I notice right away problems. Plug the laptop into the USB-C dock and everything comes up wrong, fonts all wacked, window sizes distorted. Have to log out and log back in to get things to a working state.
I just don't think X was really designed well for this world of transient displays.
Changes where there are plenty of chances to garner negative attention, but almost none to garner positive attention, and the ultimate success would be for the work to go completely un-noticed.
From an end user's perspective, they used to be able to Y in Z and it's stopped working, they google the problem and that's their first introduction to Wayland or Snap or Pipewire or Systemd or whatever.
One of the benefits to a traditional yearly product release cycle is to bundle such changes with a bunch of other, more obviously beneficial changes to sweeten the bitter medicine.
Messing with clipboard has nothing to do with security. I bet the web browser (and other programs who do RCE or phone home) still has access to all my files in wayland, just like in X
Of course this is, today, considered a security nightmare. But it works and I use it. Give me an equally trivial way to do it on Wayland and I think my last X dependency goes away.
But, Zoom screen sharing didn’t work in Wayland. And Nvidia breaks Sway. I’m very willing to believe those are failures on the part of the companies, not Wayland. However, in the end, I can have a working system with X, or a non-working system with Wayland. Me and my computer disagree as to which system is better I guess, and the computer won.
That’s a hell of an assumption
>That’s a hell of an assumption
How.. I don't get how you find this a contentious idea. The context of your quote:
"People on Unix environments that don't have Wayland support. They have to use X or not have a graphical experience."
You're stating that assuming that people "presumably" are using "BSD, and not Linux" for "good reasons" is a wrong thing to assume? Or some other Unix?
I don't see how it could be any other way? Would someone use any Unix, be unaware of Linux, and decide NOT to use Linux without a good reason? Any reason that causes them to prefer their Unix of choice, is a good reason!
Did you mean something else?
Something like UI-less Wayland compositor that is also an X server, doing 1:1 mapping between top level X windows and Wayland windows.
(There is XWayland, but it is AFAIK does not work with WMs and does not map Wayland windows back to X model.)
Then I switched to xanmod kernel. It was like I had an entirely new machine. It's remarkable. I kind of wish most newbie-friendly desktop environments recommended installing it on setup (it's easy to do via package manager.)
I'm still waiting to see a list of "what Wayland improves over X".
The only things that i heard of is fractional scalling and suppport for bigger colour depths.
In particular, I don't think anybody cares whether users " will be moved by Wayland's technical merits". The question is whether devs will be moved.
40 comments and nobody pointed out this benefit...
It's the usual "convenience vs. security" debate all over again
The problem is that people use video chat clients by vendors that don't give a crap about Linux.
I do share your dismay at those apps, though (I primarily use Linux)
It's like nitpicking what lock the door has when the window is left wide open.
I have bad news for you: linux allows every application that you run to wipe out your entire home directory.
Also no, it's not "linux", it's every OS without per-application MAC or sandboxing.
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/m...
Proper sandboxing is not something that third-party programs should get to decide to use or not. It should be the users of these programs that decide if they want to sandbox them or not, even if the application is unwilling.
Sandboxing is an operating-system issue, not a packaging issue.
We have it and there are multiple tools like bubblewrap and co. You can already restrict applications if you want.
Externally, seeing chaos & churn is easy, takes no effort. Yes, a lot of screenshots & device emulation protocols were left undefined. But that doesn't seem like a weakness to me. The bazaar finds interesting good approaches, slowly, over time, by way of it's many voices. X extensions also evolved out of some organic growth as well, but gee it sure seems like everyone remotely involved says there's basically no more juice to squeeze, that the limitations of the architecture have come & are hard & fast (and that getting many modern necessities has been hell after hell).
Wayland's minimalism is such a great guard against running into deadends. It invents less, uses the OS more (rather than inventing it's own controllers), relies on protocols more. X had to be a perfect cathedral, and it got really far & severed many well, but issues like hidpi, multiple refresh rates, screen tearing a video seemed basically unsolvable. No one had purchase on the monolith to keep things moving forward, and something had to be done.
There really wasn't any choice. And it's almost certain a new monolith that tried to be X, that tried to do everything, would have fizzled. Letting the compositors figure stuff out slowly made success possible. Success, progress, has to mature. And that's hard and takes patience. And maybe people don't appreciate the wins, and this being unfrozen; but we were stuck where we were, we couldn't really budge at all, and we found a really smart way to start. Wayland is much less and that's huge. The bazaar iterating forwards is glorious & great, an exchange where we prevent crufting ourselves in like we had in the past.
Whatever the technical decisions are here (and I for one see huge wins), theres so many other concerns. Compositors can be remarkably complete for being absolutely tiny, because we actually use the OS now; that's a stunning win that doesn't affect users of a particular env, but actually means so much. Keeping the door open to new futures matters, and Wayland bestows that possibility, something of great importance. The political decision/merit to let protocols work things out over time, to find agreement & allow divergence is as important and even greater a win, a way to insure adaptability forwards, a colossal jump over X monocultures & monolith fiddling. Wayland's merit is that it makes sense in the world. That it is a basis for creation. It's easy as an end user to underrate that, to feel upset over a proprietary hardware vendors lagged adoption and your videoconferencing software's lazy negligence. A viable open ended future isn't much comfort to present suffering. It's still stunning to me the vehemence of such avid consumerdom, such strong consumeristic expectation, such unbroked unwillingness to face difficulty, and such staunch tying oneself to the past. I'm so excited for this future - difficulties and discovery and all - and I want to much to see some respect & appreciation for the technical & political merits of Wayland, of the bazaar, of figuring stuff out, of improving. It matters.