No description
Find a file
2025-05-15 19:30:33 -05:00
hosts center primary monitor at 0,0, fixes some SDL cursor mappinmg issues 2025-05-15 19:30:33 -05:00
include add niri and docker shell aliases 2025-01-14 00:15:27 -06:00
raw liberation: Wallpaper, finally! 2025-03-25 19:57:47 -05:00
templates waybar: add power menu 2025-05-15 16:46:07 -05:00
.gitignore Use attrs schemas for host configs 2025-01-17 17:40:22 -06:00
.gitmodules Add beancount syntax highlighting 2021-03-25 00:45:35 -05:00
install Separate hosts file and add seraph, xinitrc 2019-01-30 01:45:19 -06:00
install.py fix wpaperd ports; only query compositor for outputs one time 2025-05-15 12:49:35 -05:00
LICENSE Create LICENSE 2020-06-23 14:51:33 -05:00
Pipfile Migrate to Jinja templates 2025-04-04 20:30:54 -05:00
Pipfile.lock Fix dependencies 2025-05-15 10:13:31 -05:00
README.md update README to the current status of the project 2025-05-15 19:30:22 -05:00

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!