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 | Cloning, bootstrapping, and ISO-based installation. |
| GEMINI.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, and sops.
- 🖥️ desktop/: Graphical interface, Niri WM, and Terminals.
- 🧠 knowledge/: Note-taking and information organization.
- 🎬 media/: Multimedia processing and entertainment.
- 🤖 ai/: Local LLMs (Ollama) and AI service orchestration.
| 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. |
The system implements a Global Leader capability using Kanata for hardware-level keyboard layers and Niri for window management.
- Caps Lock acts as the Leader: Tap for
Esc, Hold forMod+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 available templates
nix flake show .#templates
# Initialize a new project
nix flake init -t .#rust-simple- envoluntary: A direnv-like matcher that avoids needing to create gitignored nix files in projects.
- Jujutsu (
jj): The preferred VCS for this repository (supports git operations with a more powerful model).
| Alias | Command | Description |
|---|---|---|
hms |
home-manager switch --flake . |
Rebuild Home Manager profile. |
nrs |
sudo nixos-rebuild switch --flake . |
Rebuild NixOS (Linux). |
drs |
darwin-rebuild switch --flake . |
Rebuild nix-darwin (macOS). |
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 GEMINI.md for detailed contribution rules and architectural mandates before submitting changes.