99 lines
1.6 KiB
Bash
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
|