1.8 KiB
1.8 KiB
dotfiles repo agent guide
This repo is a collection of personal config files deployed via GNU Stow.
How it works
- Each subdirectory is a stow package:
bash,zsh,git,starship. - Directory structure mirrors
$HOME(e.g.git/.gitconfig→~/.gitconfig).
Commands
# Deploy all packages (auto-installs stow via apt if missing)
./setup.sh
# Selective install
./setup.sh --only=git,zsh
# Preview without changes
./setup.sh --dry-run
# Remove symlinks
./uninstall.sh
./uninstall.sh --only=git # selective removal
All scripts accept --verbose, --quiet, --dry-run.
Adding a new package
mkdir <name>
cp ~/.<configfile> <name>/
./setup.sh --only=<name>
Toolchain auto-installed by setup.sh
setup.sh installs these tools to ~/.local/bin if not already present — do not add manual install steps for them: zinit (zsh plugin manager), zoxide (smart cd), fzf, bat, eza, delta, ripgrep.
Theming convention
All tools are themed with Gruvbox Dark Hard. When adding config for a new tool, apply Gruvbox colors to keep the environment cohesive.
Important constraints
- Default shell is zsh (
bash/.bashrcdoes NOT exec zsh — set your default shell withchsh). Uses zinit as plugin manager (turbo mode for async loading). .bashrcsources~/.bash_aliases;.zshrcsources~/.zsh_aliases.- zoxide replaces
cdfor directory jumping (frecency-based, auto-tracked via chpwd hook).jalias forzoxide cd. - Sensitive files are gitignored:
.netrc, SSH keys (id_rsa*,known_hosts), gradle caches. - No build, test, lint, or typecheck steps — this is pure config.
- Backups of pre-existing real files are created at
~/.dotfiles-backup-YYYYMMDD-HHMMSSbefore stowing.