Personal configuration files managed with GNU Stow.
- Clone this repository to your home directory:
git clone <repo-url> ~/dotfiles
cd ~/dotfiles
git submodule update --init --recursive # Initialize git submodules- Install GNU Stow if not already installed:
# Ubuntu/Debian
sudo apt install stow
# macOS
brew install stow
# Arch
sudo pacman -S stowTo symlink a specific configuration to your home directory:
stow <package-name>For example:
stow bash # Symlinks bash configuration
stow helix # Symlinks helix editor configuration
stow ghostty # Symlinks ghostty terminal configurationTo install multiple packages at once:
stow bash helix ghosttyTo remove symlinks for a specific configuration:
stow -D <package-name>To refresh symlinks after making changes:
stow -R <package-name>bash- Bash shell configurationclaude- Claude.ai assistant configurationenv_setup_scripts- Environment setup scriptsghostty- Ghostty terminal emulator configurationgit-tools- Git workflow tools (git-worktree-runner)helix- Helix text editor configurationnushell- Nushell configurationnushell-macos- macOS-specific Nushell configurationrust- Rust development configurationstarship- Starship prompt configurationyazi- Yazi file manager configurationzellij- Zellij terminal multiplexer configurationzsh- Zsh shell configuration
Each directory in this repository is a "stow package" that mirrors the structure expected in your home directory. For example:
bash/.bashrcwill be symlinked to~/.bashrchelix/.config/helix/config.tomlwill be symlinked to~/.config/helix/config.toml
- Stow will never overwrite existing files. If conflicts occur, it will report an error.
- Use
stow -n <package>to simulate what would be symlinked without making changes. - Use
stow -v <package>for verbose output to see what's being linked.