[[ ! -d "${CONFIG}" ]] && mkdir -p "${CONFIG}" [[ ! -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 "${INIT}" > /dev/null "${RELOAD}" > /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