New workstation/CONTEXT.md documents the ~/dotfiles symlink repo setup. Added workstation keywords to context loading table. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Workstation Configuration
Dotfiles Repository
- Repo:
cal/dotfiles(private) ongit.manticorum.com - Local path:
~/dotfiles/ - Strategy: Symlink — configs live in the repo, symlinked to their expected system paths
What's tracked
| Category | Repo path | System path |
|---|---|---|
| Fish shell | fish/config.fish |
~/.config/fish/config.fish |
| Starship prompt | starship.toml |
~/.config/starship.toml |
| Git config | git/.gitconfig |
~/.gitconfig |
| Git global ignore | git/ignore |
~/.config/git/ignore |
| SSH config | ssh/config |
~/.ssh/config |
| Bash | shell/.bashrc, shell/.bash_profile |
~/.bashrc, ~/.bash_profile |
| Zsh | shell/.zshrc, shell/.zshenv |
~/.zshrc, ~/.zshenv |
| MangoHud | mangohud/MangoHud.conf |
~/.config/MangoHud/MangoHud.conf |
| Zed editor | zed/settings.json |
~/.config/zed/settings.json |
| Restic excludes | restic/excludes.txt |
~/.config/restic/excludes.txt |
| VS Code | vscode/settings.json, vscode/keybindings.json |
~/.config/Code/User/ |
Secrets handling
API keys and tokens are never committed. Shell configs source secrets from separate untracked files:
- Bash:
~/.bash_secrets(chmod 600) - Zsh:
~/.zsh_secrets
Install / Uninstall
cd ~/dotfiles
./install.sh # Backs up originals to ~/.dotfiles-backup/, creates symlinks
./uninstall.sh # Replaces symlinks with standalone copies
Both scripts are idempotent.
Adding a new config
- Copy the file into the appropriate directory in
~/dotfiles/ - Add the mapping to the
LINKSassociative array in bothinstall.shanduninstall.sh - Run
./install.shto replace the original with a symlink - Commit and push
Shell setup
Cal migrated from zsh to fish + starship (Feb 2026). Bash and zsh configs are retained for compatibility but fish is the primary interactive shell.
Backups
Original files are backed up by install.sh to ~/.dotfiles-backup/<timestamp>/ before being replaced with symlinks. Multiple runs create separate timestamped backup dirs. Old backups can be cleaned up manually.