dotinstall makes it easier to completely setup a fresh install. By grouping your configs into
'packages', you can use
dotinstall to quickly symlink your files, install dependencies, and setup
your system. You might have a particularly hard time setting up your windows manager. For example, I
use i3-gaps and i3blocks-gaps on Ubuntu so I have to install those from source. By having a package
defined as i3, I can associate dependencies and scripts to run to setup my windows manager.
- Easy integration into existing dotfiles by installing as submodules.
- Association of dependencies with packages.
- Globbing for specifying targets to symlink in each package.
- Prelink, and postlink scripts to run before symlinking and dependency installation.
- Easy configuration setup using yaml.
mkdir dotfiles cd dotfiles pip3 install dotinstall dotinstall
dotinstall -h for more details.
The config file (default
config.yaml) has the following possible entries.
link: If specified as an item, it will link all the items in the package to the specified
location. If specified as a list, it will link the specific items to their specified location. Note
that each item will at most be linked once. For example, if you have three files
3.txt and you first link
1.txt, it will only link
3.txt when you later try to link
prelink: A list of scripts that will run before dependency installation and linking.
postlink: A list of scripts that will run after dependency installation and linking.
dependencies: A list of dependencies of each package that will be installed by the detected package manager. Dependency installation will occur before linking.
overwrite: If true (default), the symlinking will forcibly remove existing files, symlinks, and directories.
clean: If true (default), dotinstall will remove all broken symlinks in all target directories.
The order of the commands will be: prelink -> dependencies -> link -> postlink -> clean.
Each submodule will be installed in the order that it is listed in the config file.
Please see my personal dotfile config.
Please fork the repository and submit a PR. New plugins are very easy to create, by adding a new
class with a
Currently implemented package managers are:
Feel free to add other package managers.
dotinstall is dual-licensed under the terms of either the MIT License or the Apache License