Re: Preventing _NET_WM_STATE_ABOVE
GSR - FR <[email protected]> Wed, 9 Sep 2020 23:44:42 +0200
| Newsgroups | gmane.comp.window-managers.sawfish |
|---|---|
| Message-ID | <[email protected]> |
Hi, [email protected] (2020-08-31 at 1504.08 -0700): > The Zoom application is very aggressive in its opinions of what should be on > top of my screen; it frequently sets _NET_WM_STATE to _NET_WM_STATE_ABOVE, > which results in the window's "depth" property being 2 and makes it > impossible for me to put the window behind other, more important ones. It > even does that for its settings window! Sigh. Sawfish has Depth in the Placement tab (and Ignore stacking requests in Other) of Matched Windows, so it can be done if I understood the problem (and the program is not doing silly tricks). I guess you are doing it via rc file instead of GUI. > I would like to override that behavior. I tried writing a window-matching > rule that checked "Ignore stacking requests", but that didn't work. I did > figure out that (window-put w 'depth 0) does what I want, but I don't see an > easy way to write a window matcher that invokes a function. > > Anybody have a suggestion? Once running, that config is stored in variable match-window-profile as ( [...] (((WM_NAME . "foo")) (depth . -1) [...] ) [...] ) (sawfish-client real output, cropped to the right part) to make windows named foo have depth -1. You want something like that, but 0 as value. ignore-stacking-requests is so the app is not brought to front later. Adapting the documentation example, with filler NAME and CLASS (use xprop to figure right values): (add-window-matcher '((WM_NAME . "FillerName") (WM_CLASS . "^Filler/filler$")) '((depth . 0) (ignore-stacking-requests . t))) Even if you dislike GUI, I would suggest creating one fake matcher with everything enabled so you get examples of everything in the custom file, as well as in sawfish-client. Remove it once you copy the result for reference. Or check match-window.jl, it has match-window-properties info. Also you may use bindings to change the stacking (inside current depth) and depth: (bind-keys window-keymap "H-r" 'raise-window-and-transients) (bind-keys window-keymap "H-d" 'lower-window-and-transients) (bind-keys window-keymap "H-R" 'raise-window-depth) (bind-keys window-keymap "H-D" 'lower-window-depth) H- is Hyper key, d for down (just below the r key), upper case for big change, FYI. Cheers, GSR -- Sawfish ML