Personal dotfiles configuration managed with GNU stow.
This repository contains configuration files for various command-line tools and applications, organized using GNU stow for easy management and deployment across multiple systems.
- bash - Bash shell configuration (
.bashrc, prompt, dir colors) - zsh - Zsh shell configuration (
.zshrc, prompt, dir colors) - emacs - Comprehensive Emacs configuration including LSP, org-mode, and development tools
- git - Git configuration with aliases, colors, and delta integration
- tmux - Terminal multiplexer configuration
- less - Pager configuration and filters
- psql - PostgreSQL client configuration
- top - System monitor configuration
- python - MyPy type checker configuration - not installed by default
- elisp - Custom Emacs Lisp packages
- bash-osx - macOS-specific utilities (installed to
~/bin)
This repository requires GNU stow to manage symlinks.
Linux (Debian/Ubuntu):
sudo apt-get install stowLinux (Fedora/RHEL):
sudo dnf install stowmacOS:
brew install stowmacOS (MacPorts):
sudo port install stowWarning: This will create symlinks that may overwrite existing dotfiles in your home directory. Please back up your current configuration files before proceeding.
Run the provided installation script:
./install.shYou can install configurations individually or all at once using stow commands:
# Install all configurations
stow -t $HOME bash
stow -t $HOME zsh
stow -t $HOME/.emacs.d/ emacs
stow -t $HOME git
stow -t $HOME less
stow -t $HOME psql
stow -t $HOME tmux
stow -t $HOME top
stow -t $HOME/bin bash-osx
# Or install specific configurations only
stow -t $HOME git
stow -t $HOME tmuxConfigurations not included in install.sh can be installed manually:
# Install python configuration (MyPy)
stow -t $HOME pythonEach directory in this repository corresponds to a configuration package that stow will symlink to your home directory:
dotfiles/
├── bash/ → ~/.bashrc, ~/.prompt, ~/.dir_colors, etc.
├── zsh/ → ~/.zshrc, ~/.zprompt, ~/.zdir_colors
├── emacs/ → ~/.emacs.d/init.el, ~/.emacs.d/emacs.org, etc.
├── git/ → ~/.gitconfig, ~/.gitconfig.local
├── tmux/ → ~/.tmux.conf
├── less/ → ~/.lessfilter
├── psql/ → ~/.psqlrc
├── top/ → ~/.toprc
├── python/ → ~/mypy.ini
├── elisp/ → ~/.emacs.d/elisp/ (referenced by Emacs config)
├── bash-osx/ → ~/bin/pbpaste.swift
└── install.sh Installation script
Edit the configuration files directly in this repository. The changes will be immediately available since stow creates symlinks.
-
Create a new directory for your configuration:
mkdir myconfig
-
Add your configuration files to the directory:
myconfig/ └── .myconfigrc
-
Install using stow:
stow -t $HOME myconfig -
Optionally, add it to
install.shfor future installations.
To remove a configuration:
stow -D -t $HOME bash # Remove bash configurationTo uninstall all configurations:
stow -D -t $HOME bash emacs git less psql tmux top
stow -D -t $HOME/.emacs.d/ emacs
stow -D -t $HOME/bin bash-osxSome configurations support local overrides:
- Git: Create
~/.gitconfig.localto override or extend settings (seegit/.gitconfig.local.example)
This dotfiles setup was inspired by:
For more information about GNU stow, see the official documentation.