3 ms·
I've been using (and contributed to) Window Maker for years - in fact it was my first non-DE window manager back in early 2000s. I have used other DEs (most not
by badsectoracula 1y ago
I've been using (and contributed to) Window Maker for years - in fact it was my first non-DE window manager back in early 2000s. I have used other DEs (most notably GNOME 2 around mid-2000s) and WMs but when i use Linux i always end up back to Window Maker and it has been my main window manager for the last ~10 years as well as the only desktop environment i've been using since ~2021 or so.
Most applications work fine since there is little difference between WMs. That said there are two issues Window Maker has that nobody has fixed:
1. There is practically no RandR support. Sure, you can enable it (and i think it is enabled by default) during compilation but the "support" is really to restart Window Maker whenever the video mode or whatever else changes so that it uses the new resolution. However due to the way Window Maker seems to identify monitors (it seems to use the vertical resolution - probably a hack that worked for someone somewhere around the 90s or early 2000s and nobody bothered to update to use something less hacky) it also causes duplicate dock configurations. Also for some reason if the dock is larger than the vertical resolution anything that doesn't "fit" gets thrown away. Ultimately i've found it easier to just disable RandR support to avoid losing my dock configuration whenever some program changes the resolution.
2. While there is EWMH support, either there is some bug with how some parts are implemented or (most likely) there are subtle differences between Window Maker's implementation and other window managers (e.g. IceWM) that applications assumed would work like that cause issues with Window Maker. The most obvious of those is applications that want to "take over" window management and handle moving and resizing themselves - it either doesn't work (the applications do not move) or the move/resize happens erratically (e.g. Firefox with the titlebar disabled or Steam has this issue). Also many applications do not get the frame size (this is probably some race condition because Window Maker does set the frame size hints properly) correctly, causing them to get wrong sizes and when combined with them trying to handle sizing and position themselves, they can end up flickering by constantly trying to set the "correct" size and/or moving and sizing themselves whenever their UI updates (often becoming smaller and smaller because they assume some frame size of 0). This is most common with applications running under Wine, but some other applications have issues too because of that (e.g. Virtualbox).
I've tried to figure out the #2 (for #1 i just don't care that much since i'm using a single monitor anyway) but from what i could tell Window Maker seems to be doing everything properly. I didn't spent that much time on it though. At some point (and assuming nobody else does, though it has been like that for years) i'll try and compare what Window Maker does and what IceWM does (which works fine) and where their behavior differs. My guess is some race condition, perhaps Window Maker sets the hints too late or something, though this is just a guess. I'll need first to write a small X11 program that replicates the issue.
As a workaround for #2 i've been using a feature i added to Window Maker years ago to ignore any decoration changes for windows (it is in Attributes -> Advanced Options -> Ignore decoration changes), essentially forcing all windows to have a resize frame and titlebar, ignoring any requests for hiding them. This lets me move around and resize, e.g., Steam (and also use all window management functionality that Window Maker provides - like rolling the window up/down using the mouse wheel - instead of whatever Valve thought i'd need).
One other issue with Window Maker (though it isn't really a Window Maker issue per-se) is that since Window Maker is not a (desktop) compositor, Gtk4 applications that assume a compositor will use black colors for whatever would be beneath a window - this mainly means that popup menus with rounded corners will actually get black corners. This is really a side-effect of Gtk4 assuming a compositor is there and not having a fallback for when there isn't one and would be an issue with other window managers too, but it should be solvable (if you care about it, i don't) by using a dedicated compositor (i think compiz or something like that may work).
- gryf73 1y agoI'm still using wmaker starting from late 90s (also had couple minor contributions) > 1. There is practically no RandR support. It is awkwardly implemented yes, as internally wmaker will restart, although changing resolution works for me most of the time. Wmaker doesn't identify monitors, it talk with xlib to get the layout when new display is detected or removed. As for double dock - never have double dock issue. Sometimes I ended up with lossing it's configuration, especially in a cases when resolution set for the display is too low. That might happen when no display is detected/connected, then resolution is set to 64x64 pixels by X. > 2. While there is EWMH support, […] It's partially implemented, and indeed it lacks of handling self-managed application. Some apps are working fine (AFAIRC GTK3 based) and some don't (steam client), but in general for those which are not cooperate modifier key can be used to move such window around and keyboard shortcuts (which I'm mostly using anyway) to resize. Or to force window to use wmaker decorations as you mentioned. This issue I've tried to solve couple of years ago[1], found culprit, but I've failed to do so. I've also spend a large chunk of time to compare it with PekWM, where those things are working as intended, but stuck on event handling. As for composition. You might consider to use standalone one (xcompmgr, compton, picom, etc) just to get the effects. [1] https://github.com/window-maker/wmaker/issues/20 https://github.com/window-maker/wmaker/issues/20
- badsectoracula 1y ago> Wmaker doesn't identify monitors, it talk with xlib to get the layout when new display is detected or removed. It'll restart if anything changes, but the problem is... > As for double dock - never have double dock issue. Sometimes I ended up with lossing it's configuration, especially in a cases when resolution set for the display is too low. ...that it attempts to create different dock configurations based on the monitor height (you can see that if you check the configuration file). This is something that would make some sense in a pre-Xinerama world where Window Maker would be launched for each monitor, but it doesn't make some sense post 2000s and is really just some ancient hack that nobody bothered to fix. > It's partially implemented, and indeed it lacks of handling self-managed application. AFAICT the support is there, but some applications seem to assume some additional de-facto behavior that Window Maker does not have. Initially i also assumed the support wasn't there and i went into implementing it myself, only to find out that it is already implemented - and seemingly works as the spec describes.