dot
is a command-line tool for managing dotfiles, written in Rust.
dot
provides a way to organize configuration files in your home directory.
Precompiled binaries are on our GitHub releases page.
If you want to use the development version, try cargo install
to build from source:
$ cargo install --git https://github.com/ubnt-intrepid/dot.git
Clone your dotfiles repository from github and then create home directory symlinks:
$ dot init ubnt-intrepid/dotfiles
Check if all of the links exist and are correct:
$ dot check
<pattern>
determines the remote repository's URL of dotfiles.
Pattern types:
(http|https|ssh|git)://[username@]github.com[:port]/path-to-repo.git
– URL of dotfiles repositorygit@github.com:path-to-repo.git
– SCP-like pathusername/dotfiles
– GitHub user and repositoryusername
– GitHub user only (repositorydotfiles
, e.g.:https://github.com/myuser/dotfiles
)
By default, the repository will be cloned locally to $HOME/.dotfiles
. This can be overridden with $DOT_DIR
.
For more information, run dot help
.
$DOT_DIR/.mappings
where the symlinks are defined in TOML. For example:
[general]
gitconfig = "~/.gitconfig"
"vim/vimrc" = ["~/.vimrc", "~/.config/nvim/init.vim"]
#...
[windows]
vscode = "$APPDATA/Code/User"
powershell = "$HOME/Documents/WindowsPowerShell"
#...
[linux]
xinitrc = "~/.xinitrc"
Use [general]
for symlinks on all platforms. [windows]
, [linux]
, [macos]
for symlinks on specific platforms.
See my dotfiles for a real example.
dot
is distributed under the MIT license.
See LICENSE for details.
- ssh0/dot
written in shell script - rhysd/dotfiles
written in Golang