My personal dotfiles, managed using GNU Stow.
Each directory within this repository represents a configuration “package” and is
symlinked into $HOME or $XDG_CONFIG_HOME as appropriate.
- Git
- GNU Stow
- A Unix-like operating system (Linux or macOS)
brew install stowsudo apt install stowsudo pacman -S stowClone the repository, ideally into $HOME/dotfiles:
git clone git@github.com:mgierok/dotfiles.git ~/dotfiles
cd ~/dotfilesThen activate whichever configuration packages you wish to use, for example:
stow -vt ~ nvimor:
stow -vt ~ gitThis will create symbolic links such as:
~/.config/nvim → ~/dotfiles/nvim/.config/nvim
~/.gitconfig → ~/dotfiles/git/.gitconfig
dotfiles/
nvim/
.config/nvim/...
git/
.gitconfig
Each directory corresponds to a package that may be activated individually:
stow -vt ~ nvim gitEdit files as you normally would within ~/.config/... —
because they are symbolic links, changes are written directly into ~/dotfiles.
To remove a configuration package and its links:
cd ~/dotfiles
stow -Dvt ~ nvim-
To add a new package, for example
zsh/:mkdir -p ~/dotfiles/zsh # place your .zshrc inside stow -vt ~ zsh
-
When setting up a new machine: clone the repository → install
stow→stow <package>
and your configuration is restored within seconds.
Some Neovim plugins require external command-line tools to function correctly.
Mason installs language servers, formatters and linters, but it does not install the
language runtimes they depend upon. The tools below are recommended so that all
configured features work reliably.
| Dependency | Purpose | Notes |
|---|---|---|
git |
plugin manager, version control | required by lazy.nvim and Neovim in general |
tree-sitter |
compiles syntax parsers | enables :TSInstall and treesitter highlighting |
ripgrep (rg) |
project-wide text search | used by fuzzy search pickers (e.g. Snacks) |
node |
runtime for several LSP servers | required by pyright, tsserver and others |
python3 |
runtime for Python formatting and tooling | required by black and other Python tools |
go |
runtime for Go tooling | required for gopls to run properly |
fd |
quicker file search for tools that support it | |
| a Nerd Font | icon support in Neovim UI (devicons) |
Feel free to use and adapt. No warranty provided.