diff --git a/picom/.config/picom/black_to_transparent.frag b/picom/.config/picom/black_to_transparent.frag new file mode 100644 index 0000000..7d71c1f --- /dev/null +++ b/picom/.config/picom/black_to_transparent.frag @@ -0,0 +1,21 @@ +#version 330 +in vec2 texcoord; +uniform float opacity; +uniform bool invert_color; +uniform sampler2D tex; + +vec4 window_shader() { + vec4 c = texelFetch(tex, ivec2(texcoord), 0); + { + // Change vec4(1.0, 1.0, 1.0, 1.0) to your desired color + vec4 vdiff = abs(vec4(0.0, 0.0, 0.0, 1.0) - c); + float diff = max(max(max(vdiff.r, vdiff.g), vdiff.b), vdiff.a); + // Change 0.8 to your desired opacity + if (diff < 0.001) + c *= 0; + } + if (invert_color) + c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a); + c *= opacity; + return c; +} diff --git a/picom/.config/picom.conf b/picom/.config/picom/picom.conf similarity index 98% rename from picom/.config/picom.conf rename to picom/.config/picom/picom.conf index e755992..10dffdf 100644 --- a/picom/.config/picom.conf +++ b/picom/.config/picom/picom.conf @@ -294,6 +294,13 @@ use-damage = true; # # glx-fshader-win = "" +# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar +# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg. +# +window-shader-fg-rule = [ + "black_to_transparent.frag:class_g = 'stalonetray'" +] + # Force all windows to be painted with blending. Useful if you # have a glx-fshader-win that could turn opaque pixels transparent. #