FAQ & Troubleshooting - SuperCuber/dotter GitHub Wiki
Is there an example repository I can take inspiration from?
Of course, check my dotfiles, in particular the .dotter
folder.
Why should I use Dotter over GNU Stow?
In my opinion, Dotter has several advantages over GNU Stow.
Superset
Dotter can do literally everything Stow can.
In fact, you can use it the same way by having a package for each folder in your repository that is pointed to ~
as its target.
For example, Brandon could use this as his global.toml
:
[bash.files]
bash = "~"
[uzbl.files]
uzbl = "~"
[vim.files]
vim = "~"
Then select those packages in his local.toml
, and Dotter would instantly work with his already existing dotfile repository.
This could be a good starting point for your migration!
Templating
GNU Stow is a symlink farm manager.
As such, it does not support templating, and especially doesn't support the per-machine templating that you can do using local.toml
variable overrides.
Per-machine configuration
Not only does Dotter allow you to change the contents of your deployed files between machines, it also allows you to change their location.
For example, on Windows NeoVim reads its configuration from C:/Users/USERNAME/AppData/Local/nvim/init.vim
, while on Linux it reads from ~/.config/nvim/init.vim
.
If you wanted to use the same dotfile repository for your Linux and Windows machines, you would not be able to do it using Stow.
However with Dotter, you can override vimrc's target location in your local.toml
and then deploy the files without any problem.
My templated files are not updating! Why?
Files that use the templating feature are not symlinked to their destination - they cannot be, since their pre-templated contents differ from the target file's contents.
Read more about Symbolic Links and Templates