__| | ___ | |_ / _(_) | ___ ___
/ _` |/ _ \| __| |_| | |/ _ \/ __|
| (_| | (_) | |_| _| | | __/\__ \
\__,_|\___/ \__|_| |_|_|\___||___/
Crafted configuration for the modern developer's workspace
Clean. Minimal. Functional. No bloat, no fluff—just carefully curated configurations that get out of your way and let you work.
dotfiles/
├── config/ # XDG-compliant configurations
│ ├── git/ # Git config with GPG signing
│ ├── nvim/ # Neovim + LSP + Treesitter
│ ├── shell/ # Bash shell configuration
│ └── rg/ # Ripgrep configuration
├── bin/ # Custom tools & scripts
├── scripts/ # Setup & maintenance automation
│ └── setup/ # Modular installation scripts
└── install.sh # Main installation script
# clone the magic
git clone https://github.com/wcollins/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# one command to rule them all
./install.shThat's it. The installer handles everything—dependencies, symlinks, fonts, the works.
- Automatic dependency installation via apt
- GNU Stow for clean symlink management
- Backup existing configs before overwriting
- Modern Lua/Vimscript hybrid Neovim config
- Bash shell configuration with modular design
# standard install
./install.sh
# force install (backs up existing configs)
./install.sh --force
# verbose mode for debugging
./install.sh --verbosemake help # show available commands
make install # install dotfiles
make update # pull latest changes & update plugins
make backup # backup current configs
make clean # clean caches
make test # validate configurations
make info # show system informationDrop your machine-specific configs in:
~/.config/shell/local- Shell customizations~/.config/nvim/local.vim- Neovim customizations~/.gitconfig.local- Git settings
These won't be tracked by Git.
- Add new configs to
config/ - Scripts go in
scripts/setup/ - Utilities belong in
bin/ - Run
make installto apply changes
- Git 2.0+
- Bash 4.0+
- GNU Stow (auto-installed)
- curl/wget for downloads
- Ubuntu (20.04+)
- Debian (11+)
make backup # backup existing configs
make install-force # force reinstallnvim +PlugInstall +qall # install plugins
nvim +PlugUpdate +qall # update pluginsThe installer includes Nerd Fonts. Set your terminal to use:
- FiraCode Nerd Font
- JetBrains Mono Nerd Font
- Source Code Pro Nerd Font
- Consolas Nerd Font
# for bash
echo 'source ~/.config/shell/profile' >> ~/.bashrc
source ~/.bashrc- XDG compliance: configs live in
~/.configwhere they belong - GNU Stow: declarative symlink management beats custom scripts
- Modular shell: clean, modular bash configuration
- Native tools first: leverage apt package manager
- Minimal dependencies: only what's essential
- Version control friendly: Everything in Git, no generated files
MIT - Do whatever you want with it
Standing on the shoulders of giants and inspired by countless dotfile repos across GitHub. Evolved from my original archive-dotfiles project that went through many years of iteration and taught many lessons in the pre-AI world.
"Perfection is achieved not when there is nothing more to add,
but when there is nothing left to take away."
- Antoine de Saint-Exupéry