# dotfiles My personal dotfiles and configurations, generated from Jinja2 templates. ## Contents - `install.py` - The script that generates and installs the templates. (Requires the virtual environment specified using Pipenv) - `install` - Updates submodules and runs `pipenv run install.py "$@"`. - `hosts/` - Host-specific configuration files. - `templates/` - The set of base template files. - `raw/` - Raw files to be copied directly to the home directory (useful for submodules). ## How it works The host configuration is parsed from the file in `hosts/` that corresponds to the hostname. This file mainly contains system information like the size and position of monitors and the names of the built-in network interfaces. Then, for each file in the `templates/` directory (recursively), the script will parse and render it as a Jinja2 template with the host's configuration as an input variable. The result will be written to the same path but relative to the home directory. Any `.j2` file suffix will also be automatically stripped. ## Installation Made easy by the `install` script. Use `install --help` to see customization options. Before running, set up the Python virtual environment with `pipenv install`. ## Questions/Comments/Contributing At the time of writing, this project is hosted on a Forgejo instance at . Because Forgejo [doesn't yet][federation-roadmap] support federated issues/PRs, I am accepting any comments or patches at `adam@gaussian.dev`. If you want to send a patch and don't know how, a simple text file attachment with the contents of `git show` will work. However, if you're already familiar with [`git send-email`], that is also fine with me! [federation-roadmap]: https://codeberg.org/forgejo-contrib/federation [`git send-email`]: https://git-send-email.io