#!/bin/bash

CONFIG_FILE="$HOME/.autothemexfcerc"

# Check if config file exists
if [[ ! -f "$CONFIG_FILE" ]]; then
    echo "ERROR: $CONFIG_FILE not found." >&2
    exit 1
fi

# Read theme names
LIGHT_THEME=$(grep -i '^light' "$CONFIG_FILE" | cut -d '=' -f2 | tr -d ' "' )
DARK_THEME=$(grep -i '^dark' "$CONFIG_FILE" | cut -d '=' -f2 | tr -d ' "' )

# Detect desktop environment
DESKTOP=$(echo "$XDG_CURRENT_DESKTOP" | tr '[:upper:]' '[:lower:]')

# Get system hour
HOUR=$(date +%H)

# Decide theme based on time
if (( HOUR >= 6 && HOUR < 18 )); then
    THEME="$LIGHT_THEME"
else
    THEME="$DARK_THEME"
fi

# Apply theme based on detected desktop
case "$DESKTOP" in
    xfce)
        xfconf-query -c xsettings -p /Net/ThemeName -s "$THEME"
        xfconf-query -c xfwm4 -p /general/theme -s "$THEME"
        ;;
    gnome)
        gsettings set org.gnome.desktop.interface gtk-theme "$THEME"
        gsettings set org.gnome.desktop.wm.preferences theme "$THEME"
        ;;
    kde|plasma)
        lookandfeeltool -a "$THEME" || echo "WARNING: KDE theme may require full theme package or kvantum setup."
        ;;
    lxqt)
        if command -v lxqt-config-appearance &> /dev/null; then
            echo "WARNING: LXQt requires manual theme switching or third-party tools."
        else
            echo "WARNING: LXQt theme switch not supported automatically." >&2
        fi
        ;;
    cinnamon)
        gsettings set org.cinnamon.theme name "$THEME"
        gsettings set org.cinnamon.desktop.wm.preferences theme "$THEME"
        gsettings set org.cinnamon.desktop.interface gtk-theme "$THEME"
        ;;
    mate)
        gsettings set org.mate.interface gtk-theme "$THEME"
        gsettings set org.mate.Marco.general theme "$THEME"
        ;;
    budgie)
        gsettings set org.gnome.desktop.interface gtk-theme "$THEME"
        gsettings set org.gnome.desktop.wm.preferences theme "$THEME"
        ;;
    *)
        echo "ERROR: Unsupported or unknown desktop environment: $DESKTOP" >&2
        exit 2
        ;;
esac

echo "Theme set to: $THEME ($DESKTOP)"
