Dott is here to manage your dotfiles in the simplest way it knows how... by copying things around.
yay -S dott-rs-bin
cargo install dott
Also available as binary and DEB package in the releases page
Dott aims to be straightforward and unobtrusive. It's not going to revolutionize your workflow. The goal is to try a different approach to dotfile management by keeping your dotfiles where they belong, without symlinks.
Joining the Dott party is as easy as falling off a log:
- Kick things off by going to where you want to keep your dotfiles. All actions should be ran inside this directory
mkdir ~/dotfiles && cd ~/dotfiles
- Create a
dott.config
file and write globs into it. Globs are all relative to your home folder.
echo ".config/git/**/*" >> dott.config
- Run
dott refresh
to copy all matching files from your home and their respective directory structure. - Use
dott install
to copy the files from the repo back to their home whenever you need it.
Dott is a simple, beta, lightweight solution. And by that i mean it's a work in progress. Got a cool idea for dott? Feel free to make a pull request.
- How does dott know if it should delete a file?
- Dott uses the patterns in dott.config to match files from the source and from the target directories. If a file is not found in source, but found in target, dott deletes it in order to keep consistency with the source directory that does not contain the file.
- I'm scared of all this copying and overwriting
- Every Dott command displays a list of all operations that will be performed, as well as a prompt where you can choose to cancel the execution of the command. You can also run commands with
-r
or--raw
to perform a dry-run.
- Every Dott command displays a list of all operations that will be performed, as well as a prompt where you can choose to cancel the execution of the command. You can also run commands with
Thanks for giving Dott a look.