Skip to content

ChrisPWill/system-nix

Repository files navigation

.system-nix

NixOS nix-darwin Home Manager

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.


🧭 Quick Links

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.

🏗️ Architecture: Intent Over Syntax

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.

🌐 Functional Domains

  • 🛠️ 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.

🖥️ Machine Matrix

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.

✨ Key Features

⌨️ Global Leader (Kanata/Niri)

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 for Mod+Alt+Shift.
  • This enables consistent, mnemonic hotkeys across all environments.

🌓 Hybrid Development Philosophy

  • Neovim & Helix Parity: Neovim (meow) uses Helix-inspired navigation (g prefix) 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.

🏗️ Project Templates

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

🧰 Modern Workflows

  • 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).

🚀 Common Commands

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).

🤝 Contribution & Development

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.

About

My system config, re-organised

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors