95 lines
1.5 KiB
Bash
95 lines
1.5 KiB
Bash
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 <mode>|wallpaper <file> [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
|