Files
nix/hosts/common/configs/user/gui/theme/theme.sh
Nikolaos Karaolidis 98ce774210 Reorganize imports
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2024-12-21 23:32:29 +02:00

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