Skip to content

Repository files navigation

.system-nix

NixOS nix-darwin Home Manager Neovim LSP Installer ISO Last Commit

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

🏗️ 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, 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.

🖥️ 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.

🤖 Automation

  • A daily GitHub Actions workflow, installer-iso.yml, builds .#nixosConfigurations.installer.config.system.build.isoImage and uploads the resulting ISO as a workflow artifact.
  • The workflow skips the build when the current default-branch HEAD matches the commit from the previous completed installer ISO run.
  • Manual dispatch supports a force toggle when a rebuild is needed without a new commit.

✨ Key Features

⌨️ Global Leader

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 for Win/Cmd+Alt, Double-tap hold for Win/Cmd+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 all flake outputs, including templates
nix flake show

# Initialize a new project
nix flake init -t .#rust-simple

🧰 Modern Workflows

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

🚀 Common Commands

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

🤝 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 AGENTS.md for detailed contribution rules and architectural mandates before submitting changes.

About

My system config, re-organised

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages