Welcome to my configuromicon. This monolithic repository contains the configurations for most of the tools that I use on an everyday basis.
It's currently backed by chezmoi.
Running chezmoi apply after a proper setup will enable deterministic restoration of my environment.
After running chezmoi apply and restarting your shell, you can also use quarantine to launch an ephemeral environment with the same configuration. Useful for testing harmful software or for vibe-coding. ~/repositories is mapped through to the VM.
Additionally, it includes a couple custom tools that I use; for example, a pycalc3 command is provided that brings up an ephemeral IPython environment for quick CPE & physics calculations.
The default keyboard layout is of my Keychron Q6 Max. You should be able to replace the base.json with your keyboard's layout, but no guarantees are made.
This project is AGPL-3.0 licensed. Small request: if you choose to contribute, please do so on the GitHub fork network. This is only a request, AGPL-3.0 does not obligate you to share private modifications unless they are used through a network (i.e. shell account).
Supported environments:
- macOS latest (w/
brew) - Debian GNU/Linux (tested against Ubuntu 24.04)
- Including under WSL with Windows integration
- Installs brew
- Red Hat-based GNU/Linux (tested against Fedora >= 42 and RHEL >= 10)
- Including under WSL with Windows integration
- Installs brew
- Windows 10 ESU/11
cmd(viaautorun.cmd)- Installs scoop
NOTE: Termux is no longer supported in a first-class fashion. I don't have an Android phone.
Supported shells:
zshbash(fallback only)cmd(NT)
POSIX-like platforms will automatically install required dependencies thanks to the ./run_posix-sync.sh hookscript.
Similarly NT platforms use run_nt-sync.cmd for dependency installation.
# Preferred: install with native package manager
apt/pkg/dnf/brew install chezmoi
# Alternative: install to .local/bin
sh -c "$(curl -fsLS get.chezmoi.io/lb)"
export PATH="$PATH:$HOME/.local/bin"
# Initalize & run first-time dependency install
chezmoi init regulad
~/.local/share/chezmoi/run_posix-sync.sh
source ~/.local/share/chezmoi/dot_commonrc
# Configure bw for templating
bw config server https://vw.regulad.xyz # this is my server, obviously. replace w/ yours
bw login --apikey # stdio needed
# Final apply
chezmoi apply# Install dependencies via scoop
scoop install chezmoi bitwarden-cli git
# Initialize chezmoi
chezmoi init regulad
# Configure bw for templating
bw config server https://vw.regulad.xyz # replace with your server
bw login --apikey
# Apply dotfiles
chezmoi applyThe autorun.cmd will automatically set up Clink and doskey macros (pipx, vi, chezmoi-cd, ssh-privpub) on each shell startup.
Make sure you add any extensions you'd like to download to vscode-extensions.txt. The newest version of every extension listed in the file is installed on each apply.
Remember to define the package in the correct hookscript (i.e. run_posix-sync.sh or run_nt-sync.sh)
- Cattle: Add userspace tailscale in vagrant for opencode/sus software
- Zsh: Finalize & memorize zsh backsearch keybinds
- Nt: Write NT self-bootstrapping script
- Doc: Emit warnings in vim and bash
- Doc: Annotate
rcs with philosophy (no network requests, fast boot, etc. - Brew: Brew on permissionless systems w/ gentoo-style custom prefixes
- Kmr: Export nvim map
- Kmr: Export tmux map
- Nvim: Fix nvim newline behaviour
- Nvim: Relative + absolute line numbers in nvim
- Nvim: Addl. language server configurations in nvim
- Nvim: ensure that treesitter and vim-polyglot aren't clobbering each other
- Hook: Break java LTS and minimum fedora version into separate vars
Some trivial chunks of code in this project have been generated by LLMs. All subroutines that have been generated have been explicitly marked as such.
Example:
# Generated by an AI assistant developed by Perplexity AI (model: GPT-5.2).
# Purpose: Updates a file line matching "^# DEP_HASH:" to "# DEP_HASH:<new_hash>" using awk.I have quite the love-hate relationship with LLMs. Under no cirmcumstances will I knowingly use an LLM to generate any user-facing documentation. Every time you choose to use an LLM to generate documentation for your code, a young programmer-ling is turned away from trying to contribute to your project.