2026-07-30 04:40:03 -04:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
DOTFILES="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
|
|
|
|
|
|
backup_and_link() {
|
|
|
|
|
local src="$1"
|
|
|
|
|
local dst="$2"
|
|
|
|
|
|
|
|
|
|
if [ -L "$dst" ]; then
|
|
|
|
|
echo "already a symlink, skipping: $dst"
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ -e "$dst" ]; then
|
|
|
|
|
echo "backing up: $dst -> $dst.bak"
|
|
|
|
|
mv "$dst" "$dst.bak"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "linking: $dst -> $src"
|
|
|
|
|
ln -s "$src" "$dst"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
backup_and_link "$DOTFILES/config/starship.toml" "$HOME/.config/starship.toml"
|
2026-07-30 05:04:14 -04:00
|
|
|
backup_and_link "$DOTFILES/config/profile" "$HOME/.profile"
|
|
|
|
|
backup_and_link "$DOTFILES/config/xinitrc" "$HOME/.xinitrc"
|
2026-07-30 04:40:03 -04:00
|
|
|
backup_and_link "$DOTFILES/vimrc" "$HOME/.vimrc"
|
|
|
|
|
backup_and_link "$DOTFILES/config/wezterm" "$HOME/.config/wezterm"
|
|
|
|
|
backup_and_link "$DOTFILES/config/fish" "$HOME/.config/fish"
|
|
|
|
|
backup_and_link "$DOTFILES/config/tmux" "$HOME/.config/tmux"
|
|
|
|
|
backup_and_link "$DOTFILES/config/senpai" "$HOME/.config/senpai"
|
|
|
|
|
backup_and_link "$DOTFILES/config/kanata" "$HOME/.config/kanata"
|
|
|
|
|
backup_and_link "$DOTFILES/config/nyxt" "$HOME/.var/app/engineer.atlas.Nyxt/config/nyxt"
|
|
|
|
|
|
|
|
|
|
# Zed: link individual files to preserve extra live data (themes, backups, etc.)
|
|
|
|
|
mkdir -p "$HOME/.config/zed"
|
|
|
|
|
for src in "$DOTFILES/config/zed/"*; do
|
|
|
|
|
dst="$HOME/.config/zed/$(basename "$src")"
|
|
|
|
|
backup_and_link "$src" "$dst"
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# System-level links (requires root)
|
|
|
|
|
if [ "$EUID" -eq 0 ]; then
|
|
|
|
|
echo ""
|
|
|
|
|
echo "=== system links ==="
|
|
|
|
|
backup_and_link "$DOTFILES/config/kanata/rc.kanata" "/etc/rc.d/rc.kanata"
|
|
|
|
|
chmod +x /etc/rc.d/rc.kanata
|
|
|
|
|
|
|
|
|
|
if ! grep -q "rc.kanata" /etc/rc.d/rc.local; then
|
|
|
|
|
echo "" >> /etc/rc.d/rc.local
|
|
|
|
|
echo "# Start kanata key remapper" >> /etc/rc.d/rc.local
|
|
|
|
|
echo "if [ -x /etc/rc.d/rc.kanata ]; then" >> /etc/rc.d/rc.local
|
|
|
|
|
echo " /etc/rc.d/rc.kanata start" >> /etc/rc.d/rc.local
|
|
|
|
|
echo "fi" >> /etc/rc.d/rc.local
|
|
|
|
|
echo "added kanata to rc.local"
|
|
|
|
|
else
|
|
|
|
|
echo "rc.local already has kanata entry, skipping"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo ""
|
|
|
|
|
echo "skipping system links (run as root to install /etc/rc.d/rc.kanata and hook into rc.local)"
|
|
|
|
|
fi
|