picom
picom copied to clipboard
unredir-if-possible option does not function
Platform
Arch Linux - amd64
GPU, drivers, and screen setup
output of "glxinfo -B":
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 4096 MB
Total available memory: 4096 MB
Currently available dedicated video memory: 3411 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce GTX 960/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 525.85.05
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6.0 NVIDIA 525.85.05
OpenGL shading language version string: 4.60 NVIDIAname of display: :0
display: :0 screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 4096 MB
Total available memory: 4096 MB
Currently available dedicated video memory: 3411 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce GTX 960/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 525.85.05
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6.0 NVIDIA 525.85.05
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 525.85.05
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 525.85.05
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
Environment
Using i3-gaps and polybar, LightDM for session manager
Picom Info
Diagnostics
Version: vgit-b700a - aka v10.2
Extensions:
- Shape: Yes
- XRandR: Yes
- Present: Present
Misc:
- Use Overlay: Yes
- Config file used: /home/morpheus/.config/picom/picom.conf
Drivers (inaccurate):
NVIDIA
Backend: glx
- Driver vendors:
- GLX: NVIDIA Corporation
- GL: NVIDIA Corporation
- GL renderer: NVIDIA GeForce GTX 960/PCIe/SSE2
Backend: egl
- Driver vendors:
- EGL: NVIDIA
- GL: NVIDIA Corporation
- GL renderer: NVIDIA GeForce GTX 960/PCIe/SSE2
Configuration:
Configuration file
backend = "glx";
glx-no-stencil = true;
glx-copy-from-front = false;
glx-no-rebind-pixmap = true;
unredir-if-possible = true;
unredir-if-possible-exclude = [
"class_g = 'looking-glass-client' && !focused",
"_NET_WM_BYPASS_COMPOSITOR@:c = 2",
"_NET_WM_BYPASS_COMPOSITOR@:c = 1"
]
unredir-if-possible-delay = 1000
shadow-ignore-shaped = false;
vsync = false
#refresh-rate = 0
inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
blur-background = true;
blur-kern = "5x5box";
transparent-clipping = false
detect-transient = true;
detect-client-leader = true;
blur: {
# method = "kern";
# strength = 6;
# background = true;
# background-frame = true;
# background-fixed = true;
}
opacity-rule = [
"85:class_g = 'URxvt' && focused",
"75:class_g = 'URxvt' && !focused",
"100:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_FULLSCREEN'",
"100:_NET_WM_STATE@[1]:32a = '_NET_WM_STATE_FULLSCREEN'",
"100:_NET_WM_STATE@[2]:32a = '_NET_WM_STATE_FULLSCREEN'",
"100:_NET_WM_STATE@[3]:32a = '_NET_WM_STATE_FULLSCREEN'",
"100:_NET_WM_STATE@[4]:32a = '_NET_WM_STATE_FULLSCREEN'",
"0:_NET_WM_STATE@[0]:32a *= '_NET_WM_STATE_HIDDEN'",
"0:_NET_WM_STATE@[1]:32a *= '_NET_WM_STATE_HIDDEN'",
"0:_NET_WM_STATE@[2]:32a *= '_NET_WM_STATE_HIDDEN'",
"0:_NET_WM_STATE@[3]:32a *= '_NET_WM_STATE_HIDDEN'",
"0:_NET_WM_STATE@[4]:32a *= '_NET_WM_STATE_HIDDEN'",
"100:class_g = 'firefox' && focused",
"80:class_g = 'firefox' && !focused",
"100:class_g = 'Rofi'"
];
blur-background-exclude = [
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
"_GTK_FRAME_EXTENTS@:c",
"class_g = 'i3-frame'",
"class_g = 'eww-example'"
];
mark-wmwin-focused = true;
mark-ovredir-focused = true;
fading = true;
fade-delta = 4;
#corner-radius = 0;
shadow = true;
shadow-offset-x = -18;
shadow-offset-y = -18;
xrender-sync-fence = true;
#detect-rounded-corners = true;
detect-client-opacity = true;
clip-shadow-above = [
"_NET_WM_WINDOW_TYPE@:a *= 'DOCK'",
"class_g = 'polybar'"
]
wintypes :
{
dock :
{
clip-shadow-above = true;
#corner-radius = 10;
};
tooltip:
{
fade = true;
shadow = false;
opacity = 1;
focus = true;
#corner-radius = 8;
};
menu :
{
opacity = 1
}
};
shadow-exclude-reg = "1900x27+10+10";
shadow-exclude = [
"class_g = 'i3-frame'"
];
rounded-corners-exclude = [
"class_g = 'i3bar'",
"class_g = 'i3-frame'"
];
Steps of reproduction
- Add
unredir-if-possible = true;
to the config. - Fullscreen a program such as urxvt
Expected behavior
Compositing for urxvt should stop, as should compositing for other programs
Current Behavior
URxvt still displays a non-transparent background. Everything else functions fine except for unredirect.
I have searched hours for a solution, and nothing was able to fix this. I can provide more info if needed.
Do you have by any chance more than one monitor attached to your system?
URxvt still displays a non-transparent background.
to make unredirection possible a fullscreen window has to be opaque.
Do you have by any chance more than one monitor attached to your system?
I only have one 1920 x 1080 monitor
URxvt still displays a non-transparent background.
to make unredirection possible a fullscreen window has to be opaque.
They are opaque though... I have it set so that it becomes opaque when I fullscreen a window. For example, URxvt is transparent unless fullscreen. If I fullscreen a window then compositing should stop for all other windows right? Currently, if I were to fullscreen URxvt and then open a new instance in another desktop view, the new instance still receives compositing.
@NextRank, a window has to be opaque by itself, i.e. have 24-bit depth.