diff --git a/bin/greyscale b/bin/greyscale new file mode 100755 index 0000000..092a87a --- /dev/null +++ b/bin/greyscale @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# +# Grayscale using picom. +# Based on https://wiki.archlinux.org/title/Picom#Grayscale + +killall picom + picom --backend glx --glx-fshader-win " + uniform float opacity; + uniform bool invert_color; + uniform sampler2D tex; + + void main() { + vec4 c = texture2D(tex, gl_TexCoord[0].xy); + float g = (c.r + c.g + c.b) / 3.0; // EDIT1: Average. + c = vec4(vec3(g), c.a); // EDIT2: Color. + if (invert_color) + c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a); + c *= opacity; + gl_FragColor = c; + } + "