WALLPAPER="" MODE="" set_wallpaper() { if [[ -f "$1" ]]; then WALLPAPER="$1" else echo "Invalid wallpaper path: $1" exit 1 fi } toggle_mode() { if [[ "$(cat "${CONFIG}"/mode)" = "light" ]]; then MODE="dark" else MODE="light" fi } show_usage() { echo "Usage: theme [-m {light|dark|toggle}] [-w ]" } finish() { [[ -n "${WALLPAPER}" ]] && ln -sf "${WALLPAPER}" "${CONFIG}"/wallpaper [[ -n "${MODE}" ]] && echo "${MODE}" > "${CONFIG}"/mode "${INIT}" > /dev/null "${RELOAD}" > /dev/null } # Parse arguments while getopts "m:w:" opt; do case "$opt" in m) case "$OPTARG" in light|dark) MODE="$OPTARG" ;; toggle) toggle_mode ;; *) show_usage exit 1 ;; esac ;; w) set_wallpaper "$OPTARG" ;; *) show_usage exit 1 ;; esac done finish