Exclude fullscreen windows
Closed this issue · 8 comments
Requesting an option to exclude fullscreen windows.
With the current behavior switching to a workspace/desktop with a fullscreened application will flash the window, causing the windows beneath it to be exposed. An example of this would be having a fullscreened mpv playing video on another workspace/desktop. In this case the flash activated by switching to the workspace/desktop may cause droppped frames or possibly conflict with compton's unredir-if-possible option.
This sounds like a good feature to me!
Unfortunately I likely won't have time to get to this for at least a couple of months but I'd be happy to accept a PR.
Finally had some time to work on this, it’ll be included in the next release.
Fantastic news. Thank you.
Just released this in v2.1.0. Use flash-fullscreen: false
in the config file or --no-flash-fullscreen
from the command line.
Flashfocus doesn't function with this option enabled in the config or command line. As in no window is flashed when flash-fullscreen: false
is set.
For the record, I could no longer see flashfocus-git in the AUR and updated the package by simply rebuilding the one previously installed. Received a warning that I was downgrading in doing so but it is the latest version.
Here is the error printed in terminal when using this setting:
Traceback (most recent call last):
File "/usr/bin/flashfocus", line 12, in
sys.exit(cli())
File "/usr/lib/python3.7/site-packages/click/core.py", line 764, in _call_
return self.main(*args, **kwargs)
File "/usr/lib/python3.7/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/lib/python3.7/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/lib/python3.7/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/lib/python3.7/site-packages/flashfocus/cli.py", line 87, in cli
init_server(kwargs)
File "/usr/lib/python3.7/site-packages/flashfocus/cli.py", line 106, in init_server
return server.event_loop()
File "/usr/lib/python3.7/site-packages/flashfocus/server.py", line 66, in event_loop
self._flash_queued_window()
File "/usr/lib/python3.7/site-packages/flashfocus/server.py", line 90, in _flash_queued_window
self.router.route_request(message)
File "/usr/lib/python3.7/site-packages/flashfocus/router.py", line 96, in route_request
self._route_focus_shift(message.window)
File "/usr/lib/python3.7/site-packages/flashfocus/router.py", line 125, in _route_focus_shift
if self._config_allows_flash(window, rule):
File "/usr/lib/python3.7/site-packages/flashfocus/router.py", line 179, in _config_allows_flash
if window.is_fullscreen():
File "/usr/lib/python3.7/site-packages/flashfocus/display_protocols/x11.py", line 48, in wrapper
return function(*args, **kwargs)
File "/usr/lib/python3.7/site-packages/flashfocus/display_protocols/x11.py", line 146, in is_fullscreen
for wm_state in wm_states:
TypeError: 'NoneType' object is not iterable
flashfocus-git
is still available on AUR - https://aur.archlinux.org/packages/flashfocus-git
Just pushed a patch for handling null _NET_WM_STATE
(2.1.1). Let me know if its fixed for you now. What WM are you running out of curiosity?
Everything is functioning as expected now. I'm using BSPWM, sorry for not including that bit of info previously.
awesome, thanks for the info!