Files
nix/users/common/options/home-manager/theme/theme.sh
2024-07-02 19:30:22 +03:00

99 lines
1.6 KiB
Bash

[ ! -L "$CONFIG"/wallpaper ] && ln -sf "$DEFAULT_WALLPAPER" "$CONFIG"/wallpaper
[ ! -f "$CONFIG"/mode ] && echo "$DEFAULT_MODE" > "$CONFIG"/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
{
"$SWITCH"
} > /dev/null
}
WALLPAPER=""
MODE=""
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