# `${HOME}/.dotfiles` Version control for dotfiles and templates. ## Purpose `${HOME}/.config` and `${HOME}` are a nightmare to version control. Maintaining a distinct dotfile directory then linking to those files is a much more sane way to cordon them off from the rest of the mess. ## Usage Make changes and maintain dotfiles in this directory. TODO: Everything below Define symlinks or dumper within the `.links` file. Run `${HOME}/scripts/update_configs.pl` to refresh links and dump templates. ## Details ### `.links` This file contains a JSON hash of the configuration files available with either a path to be linked, or the name of a dumper contained within [`${HOME}/scripts/dotfiles`](https://git.john.me.tz/jpm/scripts). ### `${HOME}/.local/state/dotfiles.json` This file contains a JSON hash of timestamps at which each configuration was last linked or dumped. The `${HOME}/scripts/update_configs.pl` script will use these times to know whether or not they need to be updated. It will do so if: * it is a linked configuration file and the `.links` file has been updated since it was last linked. * it is a dumpable template and the template has been updated since the last logged event.