Skip to content

gorzell/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

About

Yet another management tool for dotfiles

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 81.5%
  • Shell 11.0%
  • Makefile 5.5%
  • PowerShell 2.0%