A set of dotfiles for use on any machine, development or production. This repository organises dotfiles into package-based directories that can be symlinked to the home directory using GNU Stow.
This repository contains configuration packages for the following tools:
- aws/: AWS CLI configuration including custom aliases
- claude/: Claude Code configuration and custom commands
- ledger/: Ledger CLI configuration
- ruby/: Ruby gem configuration (
.gemrc
) - tmux/: Terminal multiplexer configuration
- vim/: Vim editor configuration
- (Optional) GNU Stow - for automatic symlinking
GNU Stow automates the creation of symlinks from package directories to your home directory.
-
Clone this repository into a subdirectory of your home directory:
cd ~ git clone <repository-url> dotfiles cd dotfiles
-
Install all dotfiles packages:
./bootstrap-stow.sh
-
Or install specific packages:
stow ruby # Installs ~/.gemrc stow vim # Installs vim configuration stow tmux # Installs tmux configuration
Preview what would be installed (dry run):
stow -n <package-name>
Remove a package:
stow -D <package-name>
Reinstall a package:
stow -R <package-name>
For systems without Stow, manually symlink the files:
cd $HOME
ln -s dotfiles/ruby/.gemrc .gemrc
ln -s dotfiles/vim/.vimrc .vimrc
# etc.
Each package directory contains dotfiles with their expected relative path from the home directory. When you run stow <package>
, it creates symlinks in your home directory pointing to the files in the package directory.
For example:
ruby/.gemrc
→~/.gemrc
vim/.vimrc
→~/.vimrc
tmux/.tmux.conf
→~/.tmux.conf
File already exists: If Stow complains about existing files, either remove them or use stow --adopt
to move existing files into the package.
Permission denied: Ensure you have write permissions to your home directory and the dotfiles repository.