A Domain-Driven Nix system configuration managed with numtide/blueprint. This repository provides a unified, "Intent-over-Syntax" approach for NixOS, nix-darwin, and Home Manager across personal and work environments.
| Guide | Description |
|---|---|
| INSTALLATION.md | Fast macOS bootstrap, platform setup, Windows VM notes, and ISO installation. |
| AGENTS.md | Developer Guide: Architectural mandates and conventions. |
| SECRETS.md | Guide for managing encrypted secrets with sops-nix. |
| PERFORMANCE.md | Instructions for profiling evaluation and system speed. |
Following a Domain-Driven Design (DDD) approach, configuration is organized by the user's intent—what they are trying to achieve—rather than Nix-specific implementation details.
- 🛠️ core/: Foundational shell, prompts, and fonts.
- 🐚 cli/: Modern enhancements to the standard Unix toolset.
- 💻 dev/: Engineering environment (Editors, VCS, Multiplexers).
- ⚙️ ops/: System administration, monitoring, search, and secrets tooling.
- 🖥️ desktop/: Cross-platform GUI applications, terminals, and macOS window management.
- 🐧 graphical-nixos/: Niri, DankMaterialShell, and Linux desktop integration.
- 🧠 knowledge/: Note-taking and information organization.
- 🎬 media/: Multimedia processing and entertainment.
- 🤖 ai/: Coding agents, AI command-line workflows, and local LLM services.
| Hostname | OS | Role |
|---|---|---|
cwilliams-laptop |
NixOS | Primary Personal Machine (CachyOS kernel, Niri). |
cwilliams-work-laptop |
macOS | Work Environment (nix-darwin). |
personal-pc-win |
WSL2 | Standalone Home Manager on Windows. |
installer |
ISO | Custom installation media with pre-baked settings. |
- A daily GitHub Actions workflow,
installer-iso.yml, builds.#nixosConfigurations.installer.config.system.build.isoImageand uploads the resulting ISO as a workflow artifact. - The workflow skips the build when the current default-branch
HEADmatches the commit from the previous completed installer ISO run. - Manual dispatch supports a
forcetoggle when a rebuild is needed without a new commit.
The system implements a Global Leader capability using Kanata for hardware-level keyboard layers, with platform window-manager bindings handled by skhd/OmniWM on macOS and Niri on NixOS.
- Caps Lock acts as the Leader: Tap for
Esc, Hold forWin/Cmd+Alt, Double-tap hold forWin/Cmd+Alt+Shift. - This enables consistent, mnemonic hotkeys across all environments.
- Neovim & Helix Parity: Neovim (
meow) uses Helix-inspired navigation (gprefix) and selection modes while retaining its native "Verb-Noun" model. - Unified Tooling: Both editors share synchronized LSPs (nixd, ruff, etc.) and themes for zero-friction switching.
Bootstrap new projects instantly using pre-configured flake templates:
# List all flake outputs, including templates
nix flake show
# Initialize a new project
nix flake init -t .#rust-simple- envoluntary: A direnv-like matcher used for work-project development shells without per-project Nix files.
- Jujutsu (
jj): The preferred VCS for this repository (supports git operations with a more powerful model).
| Alias | Command | Description |
|---|---|---|
sw |
nh <platform> switch |
Smart switch using this flake and the current host. |
hms |
nh home switch |
Deprecated shim using this flake and home config. |
nrs |
nh os switch |
Deprecated shim using this flake and current host. |
drs |
nh darwin switch |
Deprecated shim using this flake and current host. |
nd <name> |
nix develop .#<name> |
Enter a devshell (e.g., nd node24). |
This repository uses numtide/blueprint, which automatically exports NixOS configurations, Home Manager profiles, and devshells based on the folder structure.
Please refer to AGENTS.md for detailed contribution rules and architectural mandates before submitting changes.