14 ms·
Argumenting Client-Side Decorations
- Mayzie 9y ago/r/linux thread: https://www.reddit.com/r/linux/comments/7v8e9q/what_is_wrong_with_wayland_forcing_client_side/ https://www.reddit.com/r/linux/comments/7v8e9q/what_is_wrong...
- makomk 9y agoOne of the, ah, interesting Wayland quirks related to this is that because Gnome didn't believe people needed the ability to minimize windows the original wl_shell protocol for creating and managing windows had no way to represent this action. So in order for minimizing windows to work, every app has to use an extension called xdg_shell to create and manage their windows instead, one that's not guaranteed to be present and kept changing in backwards-incompatible ways. (Not just any version either; it has to be xdg_shell v5 or later. Also, apparently versions before v6 can't coexist with each other, trying to use a mismatched version just stops the application from working at all.) I believe xdg-shell is officially stable as of December, so it'll be a while before it's supported everywhere and we don't yet know what happens if people discover more use cases that have to be added. This happened quite some time after major distros started shipping Wayland by default.
- jhasse 9y ago> Gnome didn't believe people needed the ability to minimize windows If that was true, why does GNOME include the ability to minimize then? The only thing that was removed was the minmize button. Try Super+H or right click -> Minimize.
- seba_dos1 9y agoSounds like this shortcut triggers an action performed by compositor, while the parent is talking about actions triggered by applications.
- jhasse 9y agoAh I see, makes sense.
- makomk 9y agoMainly because right-click menu space was cheap, I think. They were quite clear at the time that they were removing the minimize button because they didn't think minimizing windows, as a concept, had any place in their desktop environment anymore.
- jhasse 9y agoWell it's supported by default and you can even add the minimize button back with GNOME Tweaks. Works in Wayland, too.
- cryptonector 9y agoThe complexity and latency arguments are winners, clearly. And yet here we are. If you refuse to support remote displays, then you can probably get away with not caring about latency. And who wants to support remote displays anyways? Oh, well, right, ssh display forwarding, RDP, -- these exist for a reason: users need remote displays! But if you can't run a browser remotely because the latency is huge, and because every redraw involves sending entire canvasses across the network, then you've clearly lost the war to support remote displays. (Keep in mind that no one needs a remote display to run an xterm. If the app isn't graphical there's no point. And if the app is graphical then redrawing by resending everything that the server has already seen... is just so much hating your users.) Now I know everything I needed to know about Wayland. What a wonderful FA. EDIT: Is Wayland yet another case of NIH? Is Linux the land of the devs who say NIH?
- wmf 9y agoThere has been some research from Sun Labs, the VNC people, and even krh himself showing that sending entire canvasses across the network is just as efficient as sending drawing commands. But no one has bothered to implement it for Wayland.
- jhasse 9y agoYou know that RDP has the same latency issue described in the article?
- cryptonector 9y agoI referred to RDP as proof that people need remote displays. Did you not read my comment?
- jhasse 9y agoYes. But something like RDP is perfectly possible with Wayland, see https://www.ctrl.blog/entry/wayland-gnome-remote-desktop https://www.ctrl.blog/entry/wayland-gnome-remote-desktop for example. The latency issue is something you'll notice in the same way when working with Windows' remote desktop (which uses RDP).
- onli 9y agoIf you read the article also have a look at the project this comes from. It's hard for me to place exactly where this lies between X and Wayland and regular WMs, but is is a pretty bold "I will do this all different" (or at least different than what the mainstream is going with) where the project is really creating something one can actually launch. Which probably makes OPs opinion on questions such as this worthwhile to consider.
- seba_dos1 9y agoI'm looking into starting implementing Wayland support in Allegro 5 game library, which is basically a multiplatform way to get and handle a window with OpenGL context inside. You get some drawing API, some helper functions useful for games, events etc. There is no toolkit used, because why would it need one? So I can support KDE's SSD protocol. Fine, can do it. But... what about other compositors, like GNOME's Mutter? Oh, great, so I'll have to implement full working window decoration by myself, only for this single windowing system on a single platform? How should it look? How should it behave? How should it be configured? Who the hell even thought that would be a good idea? OK, let's check SDL2 then, it's a quite similar and nowadays more popular library, I wonder how did they do it, as I heard they have Wayland support already done. Oh... window decorations on SDL2/Wayland are not implemented, so there is just no decoration. https://bugzilla.libsdl.org/show_bug.cgi?id=2710 https://bugzilla.libsdl.org/show_bug.cgi?id=2710 Awesome. I'll probably end up with the same thing, as I'm using KDE Plasma and it will just work fine for me. Whatever. CSD is an awful idea and whoever came up with it should feel bad. Massive step back.
- jhasse 9y agoI think the idea is that you use Gtk+ to get the window.
- Doxin 9y agoWhich is all fine and dandy if all you care about is GNOME, But presents a real problem when you're trying to be cross-desktop-environment compatible.
- jhasse 9y agoIt isn't as cross-DE as it could be, but a lot more than just GNOME: MATE, Budgie, Pantheon, XFCE, ...
- seba_dos1 9y agoAnd add big Gtk+ dependency to the library (and in result, all the games that use it) just to get the window decorations drawn on a single windowing system? Which will probably look ugly and out of place on non-Gtk+ DEs anyway? That's an unacceptable idea.
- nine_k 9y agoA WM separate from clients is one of the most convenient things to me, and something I miss most on Windows and macOS. Try moving or minimizing a window of a misbehaving Windows app. I hope Wayland is not bereft of this concept, and most well-behaved apps will keep delegating windows management to it.
- jhasse 9y agoUsing the Windows key in GNOME Wayland you can move CSD windows around all the time, even when they hang :)