This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Personal dotfiles repository managing configurations for 40+ tools across Arch Linux and macOS. Uses a modular architecture where each tool has its own directory with a setup.sh script.
./install <module> [module...]
# Examples:
./install vim tmux
./install zsh git sdk/rust./arch/setup.sh # Requires sudo, runs multi-stage setupnvim --headless "+Lazy! sync" +qa~/.tmux/plugins/tpm/scripts/install_plugins.shEach module follows this structure:
<module>/
├── setup.sh # Creates symlinks to ~/.config/ or ~/
└── config files # Tool-specific configs
Setup scripts use ln -sf / ln -snf to symlink configs to standard locations.
- vim/ - Neovim config using LazyVim framework (
~/.config/nvim) - zsh/ - Zsh with sheldon plugin manager and starship prompt
- tmux/ - Tmux with TPM plugin manager
- git/ - Git config with delta pager, GPG signing, pre-commit hooks
- hyprland/ - Hyprland compositor with waybar, fuzzel
- sdk/ - Language SDKs (rust, python, node, go, etc.)
- arch/ - Full Arch Linux system setup orchestrator
- Neovim: Lazy.nvim
- Zsh: Sheldon
- Tmux: TPM (Tmux Plugin Manager)
Uses git-crypt for secrets. Encrypted files defined in .gitattributes:
*.pvtfileszsh/zsh_secret
Use git lock / git unlock aliases to manage encryption.