# ${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 `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}/.state/linker.json This file contains a JSON hash of timestamps at which each configuration was last linked or dumped. The `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.