Dotfile management
INFO
This tool is distro agnostic, you can take ins and the way it manages dotfiles anywhere you like. It even works on Android and Steam Deck!
Quick start
To get started you need a git repository with dotfiles in it.
You can clone an existing repo with
ins dot clone <repo url>Or create a new one with
ins dot initYou can now add dotfiles to that repo with
ins dot add <file>This will copy them to the repository. By default, dotfile repositories are located in ~/.local/share/instant/dots/<repo name>. You can commit, push and pull like with normal git repositories because that is hat they are.
Once you push new updates to your dotfiles,
ins dot updatewill pull them and install them to your home directory.
ins dot will detect dotfiles modified by the user and ignore them during updates, while continuing to update untouched dotfiles.
ins dot statusShows the status of current dotfiles, that being mainly which are installed, and which ones are modified by the user.
A modified dotfile can be reverted to the version in the repository with
ins dot reset <file>After resetting a dotfile, it will get updates again. Tracking user modifications works even when skipping or rolling back updates. Updates will only stop if the file is in a state which has never been in the repository, in which case it is assumed to contain user modifications which should be preserved.
Multiple repos
You can combine dotfiles from multiple repositories. If all repositories configure different applications then this is trivial, if two of them contain dotfiles for the same application, dotfiles from the repository with the higher priority in ~/.config/instant/dots.toml will be used. This can be used to install both third party base dotfiles as well as keeping your personal configuration tracked and synchronized between machines.
The ins repo command can be used to manage repositories, but they can also be configured directly in ~/.config/instant/dots.toml.
Automatic usage
ins dot is used to automatically install and update the default instantOS dotfiles (https://github.com/instantOS/dotfiles). That way you can enjoy an up to date preconfigured setup while still being able to customize any part of it without investing any extra effort. Putting ins dot update in a startup script is a well supported and intended use case.
Philosophy
Do not reinvent the wheel
All dotfiles are kept in a Git repository. If you think there is something better then you're either wrong or have decades of time to devote to it.
Get out of the user's way without breaking
The user does not even have to know the dotfiles are managed. Nothing they do will ever get overwritten without them requesting it. To the best of its ability, the program will keep working on what it can without risk of doing anything the user does not want.
Comparison with others
GNU Stow
This symlinks
yadm
This is a great tool which I use myself. Its genius lies in how it basically doesn't do anything. It just turns your home directory into a git repository.