better config-switch

This commit is contained in:
2026-03-14 03:45:10 +00:00
parent 763013ae87
commit 5ec0855a7e
+24 -19
View File
@@ -7,24 +7,29 @@ set -euo pipefail
desktop=${1:-${XDG_CURRENT_DESKTOP:-default}} desktop=${1:-${XDG_CURRENT_DESKTOP:-default}}
for item in "kitty" "wlogout"; do alt() {
if [ ! -L "$HOME/.config/$item" ] && [ -e "$HOME/.config/$item" ]; then local item profile
echo "Error: $HOME/.config/$item exists and is not a symlink." >&2 item=$1
exit 1 profile=$2
elif [ -L "$HOME/.config/$item" ]; then if [[ -e $HOME/.config/.alt/${item}-${profile} ]]; then
rm -f "$HOME/.config/$item" || { ln -svf ".alt/${item}-${profile}" "$HOME/.config/$item"
echo "Error: Failed to remove existing symlink $HOME/.config/$item." >&2 elif [[ -e $HOME/.config/.alt/${item}-default ]]; then
exit 1 ln -svf ".alt/${item}-default" "$HOME/.config/$item"
} fi
fi }
if [ "$desktop" = "niri" ] || [ "$desktop" = "GNOME" ]; then for item in "kitty" "wlogout"; do
if [ -e "$HOME/.config/.alt/${item}-niri" ]; then if [[ ! -L $HOME/.config/$item ]] && [[ -e $HOME/.config/$item ]]; then
ln -svf ".alt/${item}-niri" "$HOME/.config/$item" echo "Error: $HOME/.config/$item exists and is not a symlink." >&2
elif [ -e "$HOME/.config/.alt/${item}-default" ]; then exit 1
ln -svf ".alt/${item}-default" "$HOME/.config/$item" fi
fi
else case "$desktop" in
[ -e "$HOME/.config/.alt/${item}-default" ] && ln -svf ".alt/${item}-default" "$HOME/.config/$item" niri | GNOME)
fi alt "$item" niri
;;
*)
alt "$item" default
;;
esac
done done