Closed Keating950 closed 3 years ago
I confirm this problem too here with NVIDIA drivers and glx backend (with and without experimental backend).
First of all, picom can't change the opacity/transparency set by an application itself. What you are trying to achieve can only work when the opacity is set through picom (or the _NET_WM_OPACITY
atom).
Your opacity-rule
does not work since the _NET_WM_STATE
atom has multiple values but only the first one is checked, which will most likely be _NET_WM_STATE_FOCUSED
. This is a limitation in the current rule matching implementation.
You can however use the built-in shortcut fullscreen
for exactly this purpose:
opacity-rule = [
"99:fullscreen",
# other window specific rules...
]
opacity-rule = [ "99:fullscreen", # other window specific rules... ]
I got a question about opacity value: why use we have to 99 and not 100 ?
IIRC, this has been used in the past to keep the window technically "transparent" as changing to a fully opaque window could cause some inconsistencies in how (in-)active windows were handled. This hack should not be needed anymore with a recent version of picom and 100 should work as expected.
@tryone144 100 in opacity-rule used to mean "unset", IIRC.
Platform
Arch Linux
GPU, drivers, and screen setup
Thinkpad T420 with Intel(R) HD Graphics 3000
Output of
glxinfo -B
:Environment
bspwm 0.9.7-10-g2ffd9c1
picom version
Configuration:
Steps of reproduction
Tested with both st and Alacritty. The results are the same whether I set their background opacities via built-in application settings or a picom rule; in both cases, they can be made semitransparent, but their level of opacity does not change when they are made fullscreen.
Expected behavior
Fullscreen semitransparent windows become fully opaque,
Current Behavior
When making a semitransparent window fullscreen, its opacity remains the same, despite having set the following opacity rule:
Xprop confirms that
_NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN
.