#!/usr/bin/sh

lockfile=/home/nilix/.colormode
if [ ! -e ${lockfile} ]; then
  echo "fullcolor" > ${lockfile}
fi


if [ "$1" = "toggle" ]; then

  colormode=$(cat ${lockfile})

  case ${colormode} in
    "fullcolor")
      echo "greyscale" > ${lockfile}
    ;;
    "greyscale")
      echo "fullcolor" > ${lockfile}
    ;;
  esac
fi


apply_compositor() {
  kill $(pgrep picom)
  colormode=$(cat ${lockfile})

  case ${colormode} in
    "fullcolor")
      picom &
    ;;
    "greyscale")
       picom --legacy-backends --backend glx --glx-fshader-win "
    uniform sampler2D tex;
    void main() {
         vec4 c = texture2D(tex, gl_TexCoord[0].xy);
         float y = dot(c.rgb, vec3(0.299, 0.587, 0.114));
         gl_FragColor = vec4(y, y, y, c.a);
   }" &
    ;;
  esac
}

apply_compositor