My personal dotfiles for setting up a consistent development environment across systems. Powered by stow, systemd user services, and a touch of automation.
This repo is structured with GNU Stow in mind. Each directory (like zsh, nvim, etc.) corresponds to a self-contained configuration that can be symlinked into the appropriate location in your home directory.
dotfiles/
├── i3
│ └── .config
│ ├── i3
│ └── i3status.conf
├── kitty
│ └── .config
│ └── kitty
├── nvim
│ └── .config
│ └── nvim
├── systemd
│ ├── battery_notifier.sh
│ └── .config
│ └── systemd
├── tmux
│ └── .tmux.conf
├── x
│ ├── .xinitrc
│ └── .Xresources
└── zsh
└── .zshrcgit clone https://github.com/kyroceus/dotfiles.git ~/dotfiles
cd ~/dotfilesMake sure stow is installed:
# Ubuntu/Debian
sudo apt install stow
# Fedora
sudo dnf install stow
# macOS (Homebrew)
brew install stow
# Arch
sudo pacman -S stowPick and choose which configs to use:
stow zsh
stow nvim
stow kitty
stow tmux
stow x
stow i3or could use whole config
stow */This will symlink the contents into your $HOME directory.
To unstow (remove symlinks):
stow -D */The dotfiles contains user-level systemd service for notifying battery status.
sudo loginctl enable-linger $USERstow systemdThen reload and enable your service:
systemctl --user daemon-reexec
systemctl --user daemon-reload
systemctl --user enable --now battery-check.timerTo check all timers you can use
systemctl --user list-timersSince everything is symlinked, just edit the files in ~/dotfiles and commit your changes. Updates will reflect immediately.
If you'd like to contribute or fork for your own setup, follow this convention:
bin/: Scripts and CLI toolszsh/,bash/, etc.: Shell-specific configsnvim/,vim/: Editor configstmux/: Multiplexer configssystemd/: User-level systemd servicesgit/: Global git config
Feel free to fork or raise PRs if you find useful enhancements. Suggestions welcome!