[ ! -L "$CONFIG"/wallpaper ] && ln -sf "$DEFAULT_WALLPAPER" "$CONFIG"/wallpaper [ ! -f "$CONFIG"/mode ] && echo "$DEFAULT_MODE" > "$CONFIG"/mode WALLPAPER="" MODE="" set_wallpaper() { if [ -f "$1" ]; then WALLPAPER="$1" else echo "Invalid wallpaper path: $1" exit 1 fi } set_mode() { if [ "$1" = "light" ] || [ "$1" = "dark" ]; then MODE="$1" else echo "Invalid mode: $1. Use 'light' or 'dark'." exit 1 fi } toggle_mode() { if [ "$(cat "$CONFIG"/mode)" = "light" ]; then MODE="dark" else MODE="light" fi } show_usage() { echo "Usage: theme {toggle|light|dark|mode |wallpaper [mode]}" } finish() { [ -n "$WALLPAPER" ] && ln -sf "$WALLPAPER" "$CONFIG"/wallpaper [ -n "$MODE" ] && echo "$MODE" > "$CONFIG"/mode "$ACTIVATION" > /dev/null } if [ $# -eq 0 ]; then finish else case "$1" in toggle) if [ $# -eq 1 ]; then toggle_mode else show_usage exit 1 fi ;; light) if [ $# -eq 1 ]; then set_mode "light" else show_usage exit 1 fi ;; dark) if [ $# -eq 1 ]; then set_mode "dark" else show_usage exit 1 fi ;; mode) if [ $# -eq 2 ]; then set_mode "$2" else show_usage exit 1 fi ;; wallpaper) if [ $# -ge 2 ] && [ $# -le 3 ]; then set_wallpaper "$2" [ $# -eq 3 ] && set_mode "$3" else show_usage exit 1 fi ;; *) show_usage exit 1 ;; esac finish fi