I cannot wait until this lands in most distros. So much of the Wayland noise will go away.
what does “rootfull” mean?
XWayland normally runs x11 apps seamlessly (more or less) in Wayland
XWayland rootful spawns a window which is like a virtual monitor running a full x11 session inside it. You spawn apps inside of the window using the DISPLAY variable
Still, the Xwayland window is missing a title bar that would allow for moving the window around.
This is because Wayland does not decorate its surfaces, this is left to the Wayland client themselves to add window decorations (also known as client side decorations, or CSD for short).
This however would add a lot of complexity to Xwayland (which is primarily an Xserver, not a full fledged Wayland application). Thankfully, there is libdecor which can fence Xwayland from that complexity and provide window decorations for us.
This seems… ridiculous. Windows and MacOS developers don’t worry about creating decorations. And they don’t worry about that “adding a lot of complexity”. Even with X11 you get decorations from the WM without any work. I know I don’t understand the glory that is the Wayland architecture and that a bunch of folks will now angrily tell me all the numerous ways in which I’m not only wrong but but also stupid but… It just seems weird is all.
iirc mandatory Client Side Decorations is only a Gnome on Wayland thing and everyone else has support for both Client and Server Side Decorations.
Honestly I feel like it doesn’t really matter either way, it adds a little complexity for the people maintaining qt and gtk and things like that, but most actual application developers aren’t interacting directly with the display server so it doesn’t make much difference for them
It’s probably the biggest deal for games running in xwayland
Care to elaborate? What have games to do with window decorations?
Native games need to add client side decorations to be usable on Wayland Gnome. Currently most games just run in XWayland.
Exactly, native games are dead anyway? :P
I think that the reason for all the weirdness in wayland is because they are considering more usecases than just desktop with taskbar and window title bars with
_
[ ]
X
buttons. Think signage, mobile interfaces, kiosks, and other weird non-traditional interfaces. Its why absolute window positioning is dumb the way it is too.I though only GNOME cared about having client-side decorations? Probably why any GNOME app I have has an annoying toolbar when I’m using a tiling window manager.
Indeed, but GNOME is big enough to veto against anything they dislike getting into Wayland. And indeed, TWMs were brought up as a big reason why CSD sucks; window decorations primarily contain controls for the window manager and the form these controls should take depends entirely on the nature of the window manager, therefore the window manager should draw the controls. But GNOME doesn’t want to perform the oh so difficult task of providing window controls to apps that don’t provide their own under Wayland, so too bad.
“only gnome” is a bit of an understatement. It’s one of the biggest DEs.
Its confusing that we also use ‘rootful’ to refer to a process running as the root user
You need to wander through links a bit to find it but https://ofourdan.blogspot.com/2023/10/xwayland-rootful-part1.html talks about the rootful and the recent changes.
Sure. I can’t wait to finally make the switch (Nvidia).
Can someone please eli5? Why do I never hear anything about the window manager in windows and macos? Why is all the fuss on our side on Linux? I’m genuinely asking.
A compositor is a program responsible for displaying program windows and things like the desktop on your PC. On Linux, the compositor is just a program that starts when the system starts. There are multiple desktop environments available, like Plasma or Gnome, each comes with their own compositor, you can choose which you want to use.
Wayland is a protocol that the programs use to communicate with the compositor. Everyone decided to use Wayland, because if each compositor had their own protocol it would be silly, eg some programs would work only on Plasma or Gnome.
It’s a replacement for a much older X11, which could no longer keep up with requirements of modern apps.
You never hear anything about compositors on Windows or Mac because there’s only one available, you can’t choose.
Actually, Windows does allow you to use an alternate “compositor”— a feature which is used quite frequently in the industrial/embedded space. Windows calls them “custom shells”. The default is Explorer, but it can be set to any executable.
https://learn.microsoft.com/en-us/windows/iot/iot-enterprise/customize/shell-launcher
Oh man, brings me back to blackbox / xoblite on my old XP machine.
I remember using notepad to change the config files, no auto formatting or error checking.
Had no idea what I wanted out of it but I loved the minimal aesthetic.
Thank you so much. Is there a reason why we have so many issues with scaling and font rendering and the other two OSs don’t (I’m not sure if they and they hide it, I don’t know). I tried gnome on my pc and the font got very blurry when I set the scaling to 175% for my 27" 4k monitor, switched to x and fraction scaling just disappeared. Why don’t the other two OSs have this issue?
That’s a very long story, but in short - X11 was adopted as display system for Linux in 90’s at the very beginning because it was the only standard display protocol for UNIX systems at that time and it was natural consequence to take it along with the ability to port all the software that was made for it starting in 80s. The design of X started to quickly show its limitations and a replacement was considered. Wayland development was slow for a long time, because the priority was on usability of current graphics stack, which on X it was all in pretty bad shape even not so long ago. X is really not going anywhere with its feature while and only being in maintenance. Additionally, Wayland is very different and in some aspects, so it’s not possible to port things 1:1.
Initially Wayland only supported integer scaling (if you used fractional scale in such scenario, it would render next integer and downscale to your resolution, causing some font rendering imperfections), but new protocol was introduced last year after years of debates and different attempts. New compositors paired with new clients will now render mostly perfectly in fractional scales, but clients that don’t support that will still use previous method. There are also X apps running on Xwayland. Some compositors (like kwin) allow those clients to render natively scaled, some upscale from 100%, so the windows are blurry.
Other OS-es don’t have such problems, because:
- they’re centrally controlled by just one entity with clear business strategy and unlimited budget
- in monolithic systems where there’s just one UI and everything is tightly integrated, it’s much easier to innovate the software
- closed source code don’t have to be perfect, they can hack it as much as they need as long as it’s doing well on end-users’ machine
It is being discussed because we’re in the middle of the transition from X to Wayland. Before there wasn’t much discussion. In a few years when it settles out there probably won’t be much discussion.
Windows and Mac have never had a choice. There might have been significant changes to a window manager layer, but it would have been part of a larger version upgrade. Like between windows 3.1 and 95 or OS 9 to OS X. The visible changes would be closer to desktop environment like KDE and Gnome in Linux.
Thank you so much. One more question, why do we have so many issues with scaling, font rendering and all stuff and windows and macos just do it? Why aren’t we doing similar?
I’ve seen enough blurry software on Windows to know this is not quite true 😅
That’s actually true. I’ve seen it, too. So, I guess I’ll take my question back. Lol
This is the best summary I could come up with:
Red Hat’s Olivier Fourdan just announced the stable release of XWayland 24.1 as the newest feature release for this X.Org Server code allowing X11 clients to work within the confines of Wayland compositors.
XWayland 24.1 brings explicit sync support that’s long been in the works throughout the stack.
The explicit sync support brings the most noticeable improvements for those using the NVIDIA proprietary Linux graphics driver with the R555 beta driver due out imminently with that driver-side support.
Also of NVIDIA relevance in XWayland 24.1 is removing the EGLStream back-end now that NVIDIA has finally been supporting GBM across their recent driver versions.
XWayland 24.1 also ships a number of rootful improvements including HiDPI and fractional scaling for the rootful mode, among other improvements.
The brief XWayland 24.1 release announcement can be found on the Xorg mailing list.
The original article contains 160 words, the summary contains 138 words. Saved 14%. I’m a bot and I’m open source!
Hopefully in Arch already
It is in testing:
https://archlinux.org/packages/?sort=&q=xwayland&maintainer=&flagged=
X11 is a mess. Wayland is a mess.
Solution: Create a new standard (always works so well)
I present x12land
Because fuck it!
With that name we won’t get anywhere! I propose we abandon x12land and start a new standard, w12!
How about systemd-windows?
Shush! Lennart might hear you!
If it would be a standard intented for Unix ideology and not business requirements of X11 (35+ years is a long time) or Wayland (RedHat is one company with its own interests, sometimes contradicting, say, mine as a Unix user), then it could work well.
X11 paradigm I like more than that of Wayland, but it could use some clearly incompatible changes.
Mir is there
Mir is wayland-based now :p
xkcd 927
damn you beat me to it
How, exactly, is Wayland a mess? It has a good legacy window compatibility layer and is solving a lot of problems X11 had. Seems perfectly alright to me.
Ehhh, any time I try a new distro I realize after a half dozen apps dont work, that its because its using wayland by default. X11 just works, wayland is a mess.
Let’s all use the WindowServer from SerenityOS!
Reject GUI, return to console
can’t wait to try Blender in CLI
Framebuffer? Oh, but mouse… GPM? But it probably doesn’t work in a framebuffer…
what’s GPM ?
It’s a mouse in console, essentially. A mouse in the tty
Browsh sadly is non-functional without a display server. It has no way to click on links.