Personal dotfiles managed with GNU Stow.
This repository keeps application configs in per-package directories and deploys
them into $HOME with symlinks created by stow.
zsh/: Zsh config, includingzimfwsettingskitty/: Kitty terminal config and theme filesnvim/: Neovim config based on LazyVimtmux/: localoh-my-tmuxoverridesyazi/: Yazi config and plugins
Install the tools you actually plan to use. The minimum requirement is:
gitstow
Common optional dependencies:
zshkittynvimtmuxyazi
Additional notes:
tmux/.tmux.conf.localis meant to be used withoh-my-tmuxyazi/.config/yazi/plugins/starship.yaziis tracked as a Git submodule
Clone the repository:
git clone <your-repo-url> ~/dotfiles
cd ~/dotfilesInitialize submodules:
git submodule update --init --recursiveIf you use tmux, install oh-my-tmux first:
git clone --depth=1 https://github.com/gpakosz/.tmux.git ~/.tmux
ln -sf ~/.tmux/.tmux.conf ~/.tmux.confFrom the repository root, stow only what you want on the current machine:
stow zsh
stow kitty
stow nvim
stow tmux
stow yaziYou can also deploy multiple packages at once:
stow zsh kitty nvim tmux yaziPull the latest changes:
git pull --rebase
git submodule update --init --recursiveRestow a package after changes if needed:
stow zshTo remove a package's symlinks:
stow -D zsh- This repository tracks reusable configuration, not local runtime state
- Local files such as
nvim/.config/nvim/lazy-lock.json,yazi/.config/yazi/gvfs.private, and.codexare intentionally ignored - Some configs assume the related application is already installed
- Some settings may still be machine-specific and may need local adjustment