hosts | ||
include | ||
raw | ||
templates | ||
.gitignore | ||
.gitmodules | ||
install | ||
install.py | ||
LICENSE | ||
Pipfile | ||
Pipfile.lock | ||
README.md |
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 runspipenv 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!