LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

dotbot

dotfiles bootstrapping automation tool

TLDR

Install dotfiles with config
$ dotbot -c [install.conf.yaml]
copy
Specify dotfiles directory
$ dotbot -d [~/dotfiles] -c [install.conf.yaml]
copy
Run with verbose output
$ dotbot -v -c [install.conf.yaml]
copy
Use specific plugin
$ dotbot -p [plugin.py] -c [install.conf.yaml]
copy
Run only specific directives
$ dotbot -c [install.conf.yaml] --only [link shell]
copy
Run all directives except specified ones
$ dotbot -c [install.conf.yaml] --except [shell]
copy

SYNOPSIS

dotbot [options] -c config

DESCRIPTION

Dotbot is a tool for bootstrapping dotfiles. It automates the process of setting up a new machine by creating symlinks, running shell commands, and performing other configuration tasks defined in a YAML or JSON file.Configuration files define directives like link (create symlinks), shell (run commands), create (make directories), and clean (remove broken symlinks). Dotbot is typically included as a git submodule in dotfiles repositories.

PARAMETERS

-c, --config-file file

Configuration file (YAML or JSON).
-d, --base-directory dir
Base directory for dotfiles.
-p, --plugin plugin
Load plugin module.
-v, --verbose
Enable verbose output.
-q, --quiet
Suppress most output.
-Q, --super-quiet
Suppress almost all output.
--plugin-dir dir
Load all plugins in a directory.
--only directives
Only run specified directives.
--except directives
Run all directives except those specified.
--no-color
Disable colored output.
--force-color
Force colored output.
--version
Show version.

CONFIGURATION EXAMPLE

$ - link:
    ~/.bashrc: bashrc
    ~/.vimrc: vimrc
    ~/.config/nvim: nvim

- shell:
    - [git submodule update --init, Installing submodules]
    - command: ./install-packages.sh
      description: Installing packages

- create:
    - ~/.local/bin
    - ~/.config
copy

CAVEATS

Requires Python 3. Symlink creation may require appropriate permissions. Existing files at link destinations are not overwritten by default. Plugin system allows extensions but adds complexity.

HISTORY

Dotbot was created by Anish Athalye in 2014 as a simple, self-contained tool for dotfiles management. It was designed to be included as a git submodule, making dotfiles repositories self-bootstrapping without external dependencies beyond Python.

SEE ALSO

stow(1), chezmoi(1), yadm(1), ln(1)

Copied to clipboard
Kai