Remove unnecessary quotes
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -6,106 +6,13 @@ let
|
||||
name = "theme";
|
||||
runtimeInputs = with pkgs; [ coreutils-full ];
|
||||
bashOptions = [ "nounset" "pipefail" ];
|
||||
text = ''
|
||||
[ ! -L "${cfg.configDir}/wallpaper" ] && ln -sf "${cfg.wallpaper}" "${cfg.configDir}/wallpaper"
|
||||
[ ! -f "${cfg.configDir}/mode" ] && echo "${cfg.mode}" > "${cfg.configDir}/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 "${cfg.configDir}/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" "${cfg.configDir}/wallpaper"
|
||||
[ -n "$MODE" ] && echo "$MODE" > "${cfg.configDir}/mode"
|
||||
|
||||
{
|
||||
${cfg.extraConfig}
|
||||
} > /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
|
||||
'';
|
||||
runtimeEnv = {
|
||||
CONFIG = cfg.configDir;
|
||||
DEFAULT_WALLPAPER = cfg.wallpaper;
|
||||
DEFAULT_MODE = cfg.mode;
|
||||
SWITCH = lib.meta.getExe (pkgs.writeShellScriptBin "themeExtraConfig" cfg.extraConfig);
|
||||
};
|
||||
text = builtins.readFile ./theme.sh;
|
||||
};
|
||||
in
|
||||
{
|
||||
|
98
users/common/options/home-manager/theme/theme.sh
Normal file
98
users/common/options/home-manager/theme/theme.sh
Normal file
@@ -0,0 +1,98 @@
|
||||
[ ! -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
|
Reference in New Issue
Block a user