esjeon / kwin-forceblur

Force-enable blur effect to user-specified windows
MIT License
155 stars 7 forks source link

[Request] Use a blacklist (apply to everything option) #4

Open RaitaroH opened 5 years ago

RaitaroH commented 5 years ago

I am aware how the script works, but I would love if it would be a setting to apply this to everything and have a blacklist, instead of having a whitelist. I have added mostly everything but when I install something new I always forget about the script, and my biggest gripe is context menus in non-qt applications such as firefox (well, waterfox). Under desktop effects I can set up Menu, Dialogs, Combobox popups transparency yada yada, so I can have the context menus actually transparent, but I have no idea what to add the config file to make this work. Now, the context menus do not have some PID obviously, but is there a way to affect them? If you think about it, kwin does know about them so there must be a way to make them blurry on top of making them transparent.

aaronm-cloudtek commented 5 years ago

Hi RaitaroH, I have an open pull request https://github.com/esjeon/kwin-forceblur/pull/3 which implements the blacklist functionality you are looking for

RaitaroH commented 5 years ago

@aaronm-cloudtek Seems to work quite well, thank you, with the only thing being I had to restart kwin for the script to take effect. I also want to know if you think it would be possible to blur stuff like rofi or gtk context menus?

aaronm-cloudtek commented 5 years ago

Glad to hear it's working for you.

I also want to know if you think it would be possible to blur stuff like rofi or gtk context menus?

Not sure about this one, sorry. Maybe @esjeon has a better idea.

esjeon commented 5 years ago

Both rofi and gtk context menus are not "normal" (as in _NET_WM_WINDOW_TYPE_NORMAL). I cannot test this right now, but KWIn skips some non-normal windows when listing windows. You clearly don't want to see context menus in a list of windows.

It will be impossible to blur context menus for this reason.

For Roki to work with this script, it should properly populate its _NET_WM_STATE, or KWin keep ignoring its window. Currently, it looks like this:

_NET_WM_STATE(ATOM) = _NET_WM_STATE_ABOVE