better config-switch

This commit is contained in:
2026-03-14 03:45:10 +00:00
parent 763013ae87
commit 5ec0855a7e
+22 -17
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
}
fi
if [ "$desktop" = "niri" ] || [ "$desktop" = "GNOME" ]; then
if [ -e "$HOME/.config/.alt/${item}-niri" ]; then
ln -svf ".alt/${item}-niri" "$HOME/.config/$item"
elif [ -e "$HOME/.config/.alt/${item}-default" ]; then
ln -svf ".alt/${item}-default" "$HOME/.config/$item" ln -svf ".alt/${item}-default" "$HOME/.config/$item"
fi fi
else }
[ -e "$HOME/.config/.alt/${item}-default" ] && ln -svf ".alt/${item}-default" "$HOME/.config/$item"
for item in "kitty" "wlogout"; do
if [[ ! -L $HOME/.config/$item ]] && [[ -e $HOME/.config/$item ]]; then
echo "Error: $HOME/.config/$item exists and is not a symlink." >&2
exit 1
fi fi
case "$desktop" in
niri | GNOME)
alt "$item" niri
;;
*)
alt "$item" default
;;
esac
done done