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 } usage() { echo "Usage: theme [-m {light|dark|toggle}] [-w ]" exit 1 } 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 ;; *) usage ;; esac ;; w) set_wallpaper "$OPTARG" ;; *) usage ;; esac done finish