Stow is an incredible way to manage your dotfiles. It works by managing symlinks between your dotfiles directory and the rest of the system. You can then make your dotfiles directory a git repo and have it version controlled. In my honest opinion, when I was trying to get started the docs straight into deep detail of things I frankly don't really care about and jumped right over how to use it.
When using stow its easiest to keep your dotfiles directory (you may name it what you want) in your home directory, with application directories inside of it.
Then each application directory should reflet the same diretory structure as you want in your home directory.
zsh
Here is a simple example with my zshrc.
mkdir ~/dotfiles cd ~/dotfiles mkdir zsh mv ~/.zshrc zsh stow --simulate zsh
You can pass in the --simulate if you wish, it will tell you if there are going to be any more errors or not, but it wont give much more than that.
WARNING: in simulation mode so not modifying filesystem.
Once your ready you can stow your zsh application.
stow zsh
nvim
A slightly more complicated example is neovim since its diretory structure does not put configuration files directly in your home directory, but rather at a deeper level.
mkdir ~/dotfiles/nvim/.config/nvim/ -p cd ~/dotfiles mv ~/.config/nvim/ ~/dotfiles/nvim/.config/nvim/ stow zsh
!notice how the nvim directory inside of dotfiles is structured like it would
be in your $HOME directory.
Top comments (4)
i just have my
~/.dot
repository mirror the directory structure that it's supposed to have from$HOME
, and run this script after igit pull
(which i just realized i can invoke via post-merge git hook):note: i also have a
~/.dot/stay
directory, where i put things that i don't want to hardlink to anywhereO heard about this but I prefer bare repo, you may want Google this C:
bare repos work as well. This is much easier for me.
wow! that's cool