4 releases

0.1.1 Jul 31, 2023
0.1.0 Jun 27, 2023
0.0.2 Jun 23, 2023
0.0.1 Jun 23, 2023

#4 in #simplest

MIT license

17KB
338 lines

dott - The Dotfile Manager You Never Knew You Didn't Need

Dott is here to manage your dotfiles in the simplest way it knows how... by copying things around.

Installing

From AUR

yay -S dott-rs-bin

From Crates.io

cargo install dott

Also available as binary and DEB package in the releases page

Why dott? Seriously, Why?

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.

Getting Started, Or Something Like That

Joining the Dott party is as easy as falling off a log:

  1. 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
  1. Create a dott.config file and write globs into it. Globs are all relative to your home folder.
echo ".config/git/**/*" >> dott.config
  1. Run dott refresh to copy all matching files from your home and their respective directory structure.
  2. 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.

FAQ

  • 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.

Thanks for giving Dott a look.

Dependencies

~3–14MB
~105K SLoC