dotfiles/README.md

1.8 KiB

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 https://forge.gaussian.dev. Because Forgejo doesn't yet 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!