#!/bin/sh
# p2i-effets — niveau d'effets graphiques du bureau P2i.
#
#   p2i-effets                      affiche le niveau choisi (aucun, modere, complet)
#   p2i-effets aucun|modere|complet change le niveau pour l'utilisateur courant
#   p2i-effets --cle NOM            affiche un autre réglage de bureau.conf
#   p2i-effets --regler NOM VALEUR  change un autre réglage
#   p2i-effets --etat               ce qui est réellement actif dans la session
#
# Réglages : ~/.config/p2i/bureau.conf, à défaut /etc/p2i/bureau.conf.
set -eu
PERSO="${XDG_CONFIG_HOME:-$HOME/.config}/p2i/bureau.conf"
SYSTEME=/etc/p2i/bureau.conf

lire() {  # lire CLE DEFAUT
    v=""
    for f in "$PERSO" "$SYSTEME"; do
        [ -r "$f" ] || continue
        v="$(sed -n "s/^$1=//p" "$f" | tail -1)"
        [ -n "$v" ] && break
    done
    echo "${v:-$2}"
}
ecrire() {  # ecrire CLE VALEUR
    mkdir -p "$(dirname "$PERSO")"
    [ -f "$PERSO" ] || : > "$PERSO"
    if grep -q "^$1=" "$PERSO"; then sed -i "s/^$1=.*/$1=$2/" "$PERSO"
    else echo "$1=$2" >> "$PERSO"; fi
}
niveau() {
    n="$(lire effets complet)"
    case "$n" in aucun|modere|complet) echo "$n" ;; *) echo complet ;; esac
}
# Wayfire relit seul son fichier de réglages : le changement entre « modéré »
# et « complet » s'applique donc immédiatement.
regenerer() {
    ini="${XDG_CONFIG_HOME:-$HOME/.config}/p2i/wayfire.ini"
    n="$(niveau)"
    if [ "$n" != aucun ] && [ "${P2I_COMPOSITEUR:-}" = wayfire ]; then
        /usr/libexec/p2i/wayfire-config "$n" > "$ini.tmp" && mv "$ini.tmp" "$ini"
    fi
}

case "${1:-}" in
    "") niveau ;;
    aucun|modere|complet) ecrire effets "$1"; regenerer; niveau ;;
    --cle) lire "$2" "${3:-}" ;;
    --regler) ecrire "$2" "$3" ;;
    --etat)
        echo "choisi=$(niveau)"
        echo "compositeur=${P2I_COMPOSITEUR:-inconnu}"
        echo "acceleration=${P2I_ACCELERATION:-inconnue}"
        ;;
    *) sed -n '2,10p' "$0" | sed 's/^# \{0,1\}//'; exit 2 ;;
esac
