Xorg update adds touchpad gestures and variable refresh support (2021)
lists.x.org
lists.x.org
>Notable changes since 1.20 include:
- The meson support is now fully mature. While autotools support will still be
kept for this release series, it will be dropped afterwards.
- Glamor support for Xvfb.
- Variable refresh rate support in the modesetting driver.
- XInput 2.4 support which adds touchpad gestures.
- DMX DDX has been removed.
- X server now correctly reports display DPI in more cases. This may affect
rendering of client applications that have their own workarounds for hi-DPI
screens.Xorg-Server 21.1.0 - https://news.ycombinator.com/item?id=29016318 - Oct 2021 (164 comments)
Personally I have been unimpressed with Wayland. Configuration, Stability and the ability to easily record my screen makes me stick with Xorg over Wayland (I am using an AMD GPU with Debian 11).
This coupling is one of the biggest design faults of Wayland. The platform-specific functionality is no longer encapsulated in a stand-alone piece of software - the compositor now must do everything, because Wayland trusts only it to do anything privileged. This leads to less choice and more restrictions. If you wanted to get X11 running on e.g. your phone, you would get the Xorg server Android app, then run the window manager you want, then run the applications you want. This is not possible in Wayland: there would need to be one per-platform app per compositor / window manager, so you would need e.g. Weston for Linux, Weston for Android, Weston for iOS, sway for Linux, sway for Android, sway for iOS, ...
https://ajaxnwnk.blogspot.com/2020/10/on-abandoning-x-server...
> So here's the thing: X works extremely well for what it is, but what it is is deeply flawed. There's no shame in that, it's 33 years old and still relevant, I wish more software worked so well on that kind of timeframe. But using it to drive your display hardware and multiplex your input devices is choosing to make your life worse.
> ...
> So, is Xorg abandoned? To the extent that that means using it to actually control the display, and not just keep X apps running, I'd say yes. But xserver is more than xfree86. Xwayland, Xwin, Xephyr, Xvnc, Xvfb: these are projects with real value that we should not give up. A better way to say it is that we can finally abandon xfree86.
---
I think that to the extent there's confusion, it's because a lot of people (myself included) don't understand the project structure of Xorg. I honestly still don't know what the distinction is between these projects, I just know that around this time people started saying that it was time to switch to Wayland.
This seems a bit like developer hubris to me, a bit like when commercial developers are overconfident in deprecating things without understanding usage in the field. It's somewhat blind to actual usage. It isn't dead in that sense.
Now, the maintainer might not want to do it, and that's within their rights. But it's possible that somebody will step up to do any maintenance work. Which would probably be minimal but not zero.
Staying on x11 makes more sense unless using Debian unstable or testing.
We have quite different experiences I guess. On my side I just see that the recurring graphical issues that I had with X11 are fixed. Everything is super smooth, no tearing and really stable. Bonus points some of the side initiatives also improved a lot the ecosystem, like Pipewire.
While the first commit on the Wayland git was in 2008, it's client and server APIs weren't considered stable until 2013 and then DE support for it only really picked up in 2016 since they were built around X11 from the beginning.
If you were an Nvidia user then your options for DEs were limited to the ones that supported EGLStreams and you didn't get XWayland hardware acceleration or support for Webrender in Firefox until Nvidia started support DMA-buf in June of last year. Nvidia didn't support GBM until October of this year but it had an annoying memory leak which caused issues with programs not wanting to launch of launching as black squares. On top of that, the code that compositors and XWayland used to detect whether to use GBM or EGLStreams didn't work at first and XWayland windows launched as transparent so they needed to be updated. It wasn't until these beta drivers, which came out this month, that I'm able to do everything I'm supposed to be able to do in a Wayland session and the major hurdles in Wayland adoption on Nvidia have been removed. Kwin already removed it's EGLStreams backend because it never worked well to begin with and the drivers will only improve from now on.
I also Ctrl-C/Ctrl-V files between directories in the file browser but not every week. I can also drag and drop them (move or copy). Everything other use of the clipboard happens less than once per month.
If left click / middle click doesn't work between all Wayland applications I can wait until all toolkits support it or X11 is removed from Linux.
It isn't just the weird bugs. It not being able to share and/or record my screen. Everything works fine with X11, nothing works properly with Wayland. For I know there is some way of faffing with it to get it to work but what I have now works perfectly and I see no reason to change.
Slack, Discord and a bunch of other programs also don't work. They work fine in X11. I can screen share a window in wayland but not the whole screen. I frequently need to share the whole screen (when teaching people how to certain tasks).
The fact that I had to spend well over an hour trying to find something that works means it isn't ready. The existing software works perfectly in X11 and I see no point in trying wayland again anytime soon.
I tried Wayland for around four years (GNOME, sway, KDE), almost daily. I have a multiple monitor setup. I always had to switch back to Xorg for several reasons, like:
- iBus CJK support was horrible. Languages like English, Russian or Spanish don't need that but Japanese/Chinese needs it. Things like the suggestions window was completely broken (misplaced and disappeared randomly). I used several tricks to work around it but it was quite uncomfortable.
- Wine refusing to work half of the time (even with the Virtual Desktop)
- VSync not working with games (making my GPU go 100%)
- Applications crashing for no apparent reason.
- XWayland crashing completely... Even the whole compositor would crash randomly making me lose all my work.
- But the worst thing was the drawing tablet. It was completely broken. Things like pen sensibility (quite important to get details right), screen locking (it's useless to draw with less than half of the tablet!) and top buttons.
I used Wayland since it was really smooth with an old Intel GPU. The Xorg experience was quite unstable (I couldn't find the right compositor configuration). One day I was quite fed up, got a new rig with an AMD GPU and removed Wayland completely. Compared with Wayland, even with its quirks, Xorg just works.
So I can watch stuff on the TV, and when I want to choose a new thing I just mouse past the edge of my laptop screen and now I'm mousing and typing on the rpi.
Is this currently possible under Wayland with stock Ubuntu and stock Raspbian?
> We will also have our eye on Wayland when the time comes.
Every time I've inquired about $simple_x11_thing for Wayland I find smells like this one. Does Barrier work under Wayland, or not?
In Qubes, an isolated VM "dom0" operates the physical display, input devices, and desktop widgets. Apps run in VMs, which each maintain a private X server. Storage for windows in each such X is mapped to address space in dom0. dom0 copies updates to this memory to the physical display. Input events that occur with the pointer in a window are sent to that window's corresponding X server.
The limitation is that the app VMs have no access to a GPU. Some people manage to get a GPU assigned to an app VM, but GPUs generally have DMA access to all of physical memory, so this compromises security if code operating the GPU is not trusted.
There has been work on virtualizing access to the GPU, particularly in the SpectrumOS development effort.
Well the code executing on the GPU is trusted. What is not trusted is code running in the browser. The problem is that Wayland instead of not trusting the clients which shall not be trusted (browser), trusts only one client at a time. So you have security against local programs (which shall be trusted) but no security against remote code running in the browser.
By definition, nothing running in the app VM is trusted; that is the whole point of fencing off the app in a VM. The VM is safe against remote code running in the browser only until the remote code finds a hole in the browser security, i.e. for about a millisecond. Once the browser is compromised, the remote attacker can run anything they want in the GPU, if the VM has access to one. (Maybe they need a privilege escalation first, but those are a dime a dozen.)
Golden times.
I'm starting to understand what people mean when they say that Wayland is a self-serving project by the GNOME developers, too. Do we need a status tray API? Nah, GNOME doesn't use it. Should we add stable screenshot interfaces? Nope, GNOME already made one. And here we are, 10 years later, and there's only 3 desktop environments that use Wayland (GNOME, Plasma and Sway), two of which aren't even complete.
I understand the "we aren't remaking x11" argument, but that's not an excuse to design a worse window server and give a middle finger to the rest of the desktop environments and window managers that people want to use. GNOME's continued attempts to divide the Linux community with pointless middleware and poorly designed software is starting to bite them in the ass. Most people I know these days have no intention of switching to Wayland any time soon, which is a shame since x11 really sucks; it shouldn't be this hard to design a successor to software that's as bad as Xorg.
[0] https://gitlab.freedesktop.org/wayland/wayland/-/issues/233
> (GNOME, Plasma and Sway), two of which aren't even complete
Which ones are you referring to as non complete? I think it's pretty obvious for Plasma, but the other...?
you can use grim + slurp for screenshots https://github.com/emersion/grim but Flameshot works as well (for example).
Edit: you should have a look at the wiki: https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway
Tray: https://github.com/swaywm/sway/releases/tag/0.14.0
Screenshot: https://github.com/swaywm/sway/releases/tag/0.10
It's just an awful, painfully dim UX. The Tyranny of the Designer is on full display.
With HiDPI finally getting mature in MATE I may be able to convince them to return. But I suspect the nightmare that is Snap will keep them away.
Things like global cursor coordinates, screen capture, and window automation are intended to or already are being done through things like xdg-desktop-portals which ask for user for permission before an application is allowed to do these things.
You CAN continue to use X11. There just isn't much point for most applications especially since XWayland lets you run X11 applications in a Wayland session. Wayland is more efficient than X11. Phoronix recently did benchmarks with games in both and Gnome's and KDE's Wayland sessions outperformed the Xorg session while using less power even though those applications were using XWayland.
"Why not just integrate Weston X11 backend into Xorg and then let application developers to drop support for X11 completely, while letting me keep using X11?"
That isn't how any of this works. Weston's X11 backend, just like the X11 backend of all DEs, relies on Xorg. There's nothing worthwhile from a Weston's X11 backend to implement into Xorg.
"Do we need an IPv4 vs IPv6 battle again?"
I mean the same people who worked on Xorg work on Wayland.They didn't come up with it for no reason. X is a protocol from 1983 and has been on version 11 since 1987. It predates GPUs, OpenGL, compositors, and multi-core desktop CPUs. They actually explain the rationale behind Wayland and what's wrong with X11 in the Wayland FAQ.
https://wayland.freedesktop.org/faq.html
If you look at the ideas that were drafted for X12, you can see that Wayland is pretty in line with it. https://www.x.org/wiki/Development/X12/?action=diff
"Moreover, those «program X uses Wayland, but bla-bla-bla... set this environment variable to use X11 backend» are frustrating."
I don't know how else you would like that work.
* https://lists.x.org/archives/xorg/2022-January/060861.html