#!/bin/sh

THEME="$1"

if [ "$THEME" = "toggle" ]; then
    if  grep Materia-dark ~/.config/xsettingsd/xsettingsd.conf > /dev/null; then
        THEME=light
    else
        THEME=dark
    fi
fi

if [ "$THEME" = dark ]; then
    GTK_THEME=Materia-dark
elif [ "$THEME" = light ]; then
    GTK_THEME=Materia-light
else
    echo "error: unknown theme: should be either dark, light or toggle" >&2
    exit 1
fi

# Alacritty
if [ -f ~/.config/alacritty/alacritty.yml ]; then
    sed -i "s/^colors: [*].*/colors: *$THEME/" ~/.config/alacritty/alacritty.yml
fi
if [ -f ~/.config/alacritty/alacritty.toml ]; then
    sed -i "s#^import =.*#import = [\"~/.config/alacritty/$THEME.toml\"]#" ~/.config/alacritty/alacritty.toml
fi

if [ "$THEME" = dark ]; then
    kitten themes --reload-in=all Afterglow
elif [ "$THEME" = light ]; then
    kitten themes --reload-in=all One Half Light
fi

# GTK
if [ -f ~/.config/xsettingsd/xsettingsd.conf ]; then
    sed -i -E "s#(Net/ThemeName) .*#\\1 \"${GTK_THEME}\"#" ~/.config/xsettingsd/xsettingsd.conf
    pkill -HUP -x xsettingsd
    gsettings set org.gnome.desktop.interface gtk-theme "${GTK_THEME}"
fi

# waybar
if [ -f ~/.config/waybar/style.css ]; then
    sed -i -E "s#file:///.*/(light|dark)[.]css#file://$HOME/.config/waybar/$THEME.css#" ~/.config/waybar/style.css
fi
