#!/bin/bash
# toggle the translucency of inactive windows in the picom compositor
# by substituting the true/false setting in the picom config file.
# picom will automatically reload its settings on any config file changes.
#
# scipt can be called without arguments to toggle the value;
# or with on / off to set it to translucent / opaque, respectively.

piconf="$XDG_CONFIG_HOME"/picom/picom.conf

line=$(grep -n "inactive-opacity-override" "$piconf")

IFS=: read -r line text < <(grep -n "inactive-opacity-override" "$piconf")

_replace() { # line file old new
  sed -i "$1 s/$3/$4/" "$2"
}

if [ "$1" = "off" ]; then
  _replace "$line" "$piconf" "true" "false"
elif [ "$1" = "on" ]; then
  _replace "$line" "$piconf" "false" "true"
elif echo "$text" | grep -q "true"; then
  _replace "$line" "$piconf" "true" "false"
elif echo "$text" | grep -q "false"; then
  _replace "$line" "$piconf" "false" "true"
fi