baskerville / bspwm

A tiling window manager based on binary space partitioning
BSD 2-Clause "Simplified" License
7.61k stars 420 forks source link

Feature Request: Fake Full Screen #1467

Open 3BD-R opened 9 months ago

3BD-R commented 9 months ago

It is one of features that i figured it out with dwm and it so useful in many cases, it allows to use firefox in fullscreen mode while you opening another application beside it, to follow along with a video for example.

ortango commented 9 months ago

It's worth saying that the config ignore_ewmh_fullscreen exists for bspwm and full-screen-api.ignore-widgets exists for firefox.

Neither of them work without some hiccups though. eg, firefox (with ignore-widgets) will do what you want, but then if you wanted to fullscreen the video with bspwm then firefox will exit "fullscreen ui mode" and you would need to click the button again.

I made a quick proof of concept hack for fake fullscreen diff here. It is as simple as I could think of.

Basic idea is that wm_flags for fullscreen are only set by events; window state is set by bspc node -t, but will not set the wm_flag. If you want to set the "wm_flag" for a window with a hotkey you can use xdotool like xdotool getactivewindow windowstate --toggle FULLSCREEN.

It wouldn't be much more to have a proper fakefullscreen state (->state=tiled with fullscreen wm_flag) in set_state, but this hack seems to work well enough.