dzaima

@dzaima@discuss.tchncs.de
0 Post – 3 Comments
Joined 1 years ago

As someone who has written client code targetting X11, it's indeed quite unfortunate that, to properly target Wayland, it'd need to all be replaced, but... good riddance. Working with X11 was fucking hell. X11 has so much broken/unreasonable garbage in, like, most places. Working with X11 has been, by far, my programming worst experience.

This is not to say that Wayland is automatically better at everything (I haven't looked into it much, and the server-side decoration problem is indeed a problem) but it'd be damn hard to be worse than X11 or be anywhere close to it.

3 more...

Yeah, I've seen libdecor as a solution, but it still feels quite off to have pretty much every wayland client have a whole dependency for such a trivial thing.

Yes, the client is supposed to manage the client content, but the obvious question then is whether the window decorations are part of its content. In some cases (stuff merged into the decorations) it can definitely be the case, but, for most things I'd say the decorations are as much a part of the client content as the apps entry in the taskbar (both contain the title of the app, potentially the icon, options to close/maximize/minimize). The only difference is that decorations always appear immediately above a window, but even that isn't really a fundamental part.

Looked into some more things, and.. base wayland does seem to continue the trend of "lol no not allowing you to do a basic thing, because surely noone has a good reason to" more - no custom positioning of windows (remembering custom window positions on reopen, window moving segments of Rhythm doctor), cursor wrapping (amazing to use in blender, wish more things did it, it feels so much better to use than the cursor being temporarily frozen in place or moving freely through everything).

At least there's still the chance for extensions (https://wayland.app/protocols/pointer-constraints-unstable-v1 plus https://wayland.app/protocols/relative-pointer-unstable-v1 I think provide the ability to set the cursor position on wrapping and have that not interrupt the stream of relative position changes) but with things not being in base wayland it means that apps can't just assume basic features on linux wayland which they can everywhere else (windows, mac, X11) unless they just choose to ignore hypothetical WMs which refuse to implement them.

I believe I also have a situation where ydotool wouldn't be sufficient too - namely, having scrcpy open in the background and sending it keypresses to play/pause/change volume of the content on my phone from global keypresses (which trigger a shell script that chooses to either forward the presses to scrcpy, or if it's not open, do some hacks to do what they would have done if not intercepted).