Skip to content

Yet another management tool for dotfiles

License

Notifications You must be signed in to change notification settings

ubnt-intrepid/dot

Repository files navigation

dot

GitHub Actions

dot is a command-line tool for managing dotfiles, written in Rust.

Overview

dot provides a way to organize configuration files in your home directory.

Installation

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

Example Usage

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 repository
  • git@github.com:path-to-repo.git – SCP-like path
  • username/dotfiles – GitHub user and repository
  • username – GitHub user only (repository dotfiles, 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.

Configuration

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

License

dot is distributed under the MIT license. See LICENSE for details.

Similar Projects