60 lines
879 B
Bash
60 lines
879 B
Bash
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: $0 [-m {light|dark|toggle}] [-w <file>]"
|
|
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
|