Window selection allows for multiple criteria at once, and I can also reject windows.
I'm also able to use the window manager's client list as a source, which makes getting toplevel windows much easier.
Window movement is done using static gravity, fixing an issue where windows were moving differently if they were a terminal window versus non-terminal window.
Bonk can delete properties. I sometimes delete WM_NORMAL_HINTS if a window has size hints set where I can't resize it the way I want.
xdotool can raise windows but can't lower them (bonk can do both).
> I sometimes delete WM_NORMAL_HINTS if a window has size hints set where I can't resize it the way I want.
With kwin it's easy to manually override an application/window to ignore geometry constraints or whatever. I do this for xterm to avoid having a few pixels of background showing at the edge when maximized.
I also used to do this a lot to get the much-nicer "soft fullscreen" in SDL1 applications.
Yes, through the state option (xdotool calls it windowstate). I was confused when implementing it, because there appear to be three different fields: maximized_horz, maximized_vert, and fullscreen. If you want total fullscreen (covers taskbar and other stuff), use the last one. If you want the window maximized, use both of the maximized ones.
Come to think of it, I should put in better documentation for the state option, as well as a general maximize alias.
Good point. I'll make a note to add some documentation to that effect. I didn't think of it originally because I didn't expect this much interest in my project.
fascinatedbox, bonk. this person has great names. I hope they can offer their version of a renaming of MacOS releases to avoid the blandish (tho triumphal and majestic, to be sure) Californiaisms. For instance what would this person call MacOS 12, 13, 14?
Wayland is still buggier than a swamp. At this point they're no longer showstopping bugs, but if you don't want to be constantly annoyed by little things not working, X11 is still the way to go.
It depends a lot on your desktop enviornment/window manager, distro, hardware, etc. I personally find Wayland works perfectly out of the box whereas X11 still to this day has issues with basic stuff like screen tearing that needs me to add a line to my xorg config file to enable the driver feature that stops screen tearing. (Note that every other display server has zero issues -- MacOS, Windows, Wayland, etc so the fact X11 still suffers from this in 2024 is a strong indicator of its suitability for everyday use). For me the GNOME/Debian/Wayland on Intel GPU has worked flawlessly since Debian switched the default to Wayland a few years ago. The same combo has been problematic for X11 for years until Debian switched over to Wayland and it has been great ever since. Firefox has supported GPU/Video acceleration in Wayland for several years as well which has solved that particular bugbear. I understand though that other combos (particually the less-used DE/WMs and/or closed-source GPU drivers etc) are better for X11 for legacy reasons however I suspect with time these issue will be resolved.
Maybe you are not sensitive to it. Some people dont percieve tearing as much as others.
I run base PopOS (ubintu derivative with gnome) and i get tearing in x. I don’t know much about linux jist that when i login i can choose x/wayland and wayland seems to be a lot better at everything (fractional scaling also works).
I can consistently trigger it playing a video in any player under X11 e.g. videos in Firefox or in a standalone player like mpv/VLC etc. It's pretty damn obvious in certain types of videos e.g. action movies. But always on Intel GPU so it's possible it's not so noticeable with other GPU due to hardware or driver software differences. The Intel driver for xorg has a configuration flag that stops screen tearing.
IIRC I get it in Firefox occasionally. I vaguely suspect some combination of smooth scrolling, video, and a portrait mode screen but it isn’t annoying enough to investigate
The question is "when?". Wayland is 15 years old, it already had a lot of time to "get better". So today, in most cases, I'd say X11 is still the way to go, it just works better.
When Wayland will get better and apps start supporting Wayland more than they support X11, it will be the time to switch, but at the glacial pace Wayland advances, chances are that your current system will be obsolete when it will happen.
It is still a good idea to consider Wayland support for your own apps and have at least a test machine running it, but doesn't mean writing apps designed to work with X11 like this one is a wasted effort. X11 is here to stay, for a while at least.
Further, it's not even clear that this kind of program is practically possible on Wayland. At best, that's yet another new protocol someone would need to invent that only some compositors would implement.
> Further, it's not even clear that this kind of program is practically possible on Wayland.
It's pretty clear. But some are too stuck up to even research it or be part of shaping it. Which is common among legacy vendors who very rarely even care to communicate with Wayland developers about their needs.
Those who aren't stuck up deal with it just fine (OBS Studio for example).
> The question is "when?". Wayland is 15 years old, it already had a lot of time to "get better". So today, in most cases, I'd say X11 is still the way to go, it just works better.
If you run more than one monitor with different DPI, Wayland is the only choice. If you want to do HDR, Wayland will be the only choice.
> When Wayland will get better and apps start supporting Wayland more than they support X11, it will be the time to switch, but at the glacial pace Wayland advances, chances are that your current system will be obsolete when it will happen.
Toolkit developers are already considering removing their X11 code paths. All of the effort is going into Wayland. The best time to switch was a few years ago. The second best time to switch is now.
I tried Wayland (Fedora 39) on two screens and the experience was so terrible and full of bugs I gave up after less than a day. New windows open at random locations and screens no matter what's focused, UI scaling of a window is sometimes wrong for its screen, at least once an hour the screens just go blank for a couple seconds etc.
For me it's definitely not usable yet, let alone the "only choice"
> All of the effort is going into Wayland
Yes, because it's still work in progress. And at some point in the future that effort will have paid off, but that's not now and definitely not a few years ago.
> If you run more than one monitor with different DPI, Wayland is the only choice.
I run multiple monitors with differing physical DPIs on X11. Yeah, that means they have differing resolutions. It doesn’t bother me, and I can do all the things that I want, unlike if I were using Wayland.
Maybe someday Wayland will be a replacement for X11, but that day is not today.
I'd say within this year already. Some major parts like explicit sync are being merged already. And all future work (like HDR) will only go to Wayland. Not to X11.
So this claim that X11 is a viable option is a fallacy.
It's my computer. I decide what's "the way to go" or "viable" there. None of your business. No one is forcing you or anyone to use it.
This is clearly a "I wrote it because it's useful for me, I put it online for whom it may concern"-type of project. You need to calm your tits and stop shitting all over people's hobby projects.
The difference is that back then there were people actually developing it, the Wayland core team is basically the developers left in the GNU/Linux ecosystem that still care about GUIs, most of them former X contributors.
There isn't anyone left standing to care for X11 development, only vocal users.
I've only once ever used an NVidia card long ago, and learned enough to never try that again.
I'm not talking about low-level system/graphics bugs, but standard shell/toolkit/application bugs. Things like "alt-letter does not select the correct menu" and "switching between English/Greek keyboard layouts sometimes gets stuck".