blob: 8cadb896ffe5ace3729f793e1bcab804c0ebfd22 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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.
|