diff options
| author | Max Bossing <info@maxbossing.de> | 2025-07-15 14:41:26 +0200 | 
|---|---|---|
| committer | Max Bossing <info@maxbossing.de> | 2025-07-15 14:41:26 +0200 | 
| commit | 75ed52cb761d90b5e5a96717a4d00ef57003994d (patch) | |
| tree | d4464a446d3324105274101fe7a72d81b658960e /README.md | |
init
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/README.md b/README.md new file mode 100644 index 0000000..8cadb89 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +If you are like me, you probably store your dotfiles in a git repo and symlink them into the right places. However, this  +always takes a considerable amount of time to do on a new system. In the past, I resorted to shell scripts to do my bidding, +but that was often machine-specific, wouldn't allow me to configure multiple machines without significant hassle, and was  +generally a bit _clunky_. + +# The solution: `dots` + +`dots` is a machine-agnostic, fs-agnostic and structure-agnostic deployer for dotfiles stored in an arbitrary directory.  +Written in rust, it's :sparkles: _blazingly fast_ :sparkles: and easy to use.  + +## dots.toml + +At the core, `dots` just symlinks arbitrary files and directories as specified by a configuration file. By default, `dots` +will look for a `dots.toml` file in the current directory. + +Example `dots.toml`: +```toml +dots_dir = "/home/anon/dots" # If omitted, defaults to working directory + +[[dot]] +src = "nvim" # Resolved against dots_dir +dest = ".config/nvim" # Resolved against $HOME + +[[dot]] +src = "fish" +dest = ".config/fish" + +[[dot]] +src = "tmux.conf" +dest = ".tmux.conf" + +[[...]] +``` + +If you want to use a different file (for example a different machine but based on the same files), pass a path to the executable +```bash +dots some_file.dots.toml +``` + +## License +This is licensed under the [MIT](LICENSE) license.
\ No newline at end of file | 
