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.
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.
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
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.
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
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.
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.
“only gnome” is a bit of an understatement. It’s one of the biggest DEs.
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.
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
iirc mandatory Client Side Decorations is only a Gnome on Wayland thing and everyone else has support for both Client and Server Side Decorations.
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.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.