better config-switch
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user