better config-switch
This commit is contained in:
@@ -7,24 +7,29 @@ set -euo pipefail
|
||||
|
||||
desktop=${1:-${XDG_CURRENT_DESKTOP:-default}}
|
||||
|
||||
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
|
||||
elif [ -L "$HOME/.config/$item" ]; then
|
||||
rm -f "$HOME/.config/$item" || {
|
||||
echo "Error: Failed to remove existing symlink $HOME/.config/$item." >&2
|
||||
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
|
||||
alt() {
|
||||
local item profile
|
||||
item=$1
|
||||
profile=$2
|
||||
if [[ -e $HOME/.config/.alt/${item}-${profile} ]]; then
|
||||
ln -svf ".alt/${item}-${profile}" "$HOME/.config/$item"
|
||||
elif [[ -e $HOME/.config/.alt/${item}-default ]]; then
|
||||
ln -svf ".alt/${item}-default" "$HOME/.config/$item"
|
||||
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
|
||||
|
||||
case "$desktop" in
|
||||
niri | GNOME)
|
||||
alt "$item" niri
|
||||
;;
|
||||
*)
|
||||
alt "$item" default
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user