picom icon indicating copy to clipboard operation
picom copied to clipboard

unredir-if-possible option does not function

Open NextRank opened this issue 2 years ago • 5 comments

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

  1. Add unredir-if-possible = true; to the config.
  2. 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.

NextRank avatar Feb 03 '23 15:02 NextRank

Do you have by any chance more than one monitor attached to your system?

tryone144 avatar Feb 03 '23 18:02 tryone144

URxvt still displays a non-transparent background.

to make unredirection possible a fullscreen window has to be opaque.

absolutelynothelix avatar Feb 03 '23 20:02 absolutelynothelix

Do you have by any chance more than one monitor attached to your system?

I only have one 1920 x 1080 monitor

NextRank avatar Feb 12 '23 20:02 NextRank

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 avatar Feb 12 '23 20:02 NextRank

@NextRank, a window has to be opaque by itself, i.e. have 24-bit depth.

absolutelynothelix avatar Feb 22 '23 08:02 absolutelynothelix