Files
nix-config/lib
Ryan Yin c8bbeb708d refactor(overlays): get NUR packages from the nur-ryan4yin overlay
myNurPkgs evaluated a second nixpkgs just for four packages. Apply the
NUR repo's own overlay instead, so they come from the host's pkgs.

Darwin's pkgs now gets nixpkgsConfig too: it set nixpkgs.pkgs, which
ignores nixpkgs.config, so only myNurPkgs carried the npm mirror there.

Assisted-by: Claude Code (claude-opus-5-5)
2026-11-01 11:55:14 -06:00
..

Library

This directory contains helper functions used by outputs/default.nix (and the installer flake) to reduce code duplication and make it easier to add new machines.

Current Functions

Core System Generators

  1. macosSystem.nix - macOS configuration generator for nix-darwin
  2. nixosSystem.nix - NixOS configuration generator
  3. colmenaSystem.nix - Remote deployment configuration for colmena

Specialized Module Generators

  1. genK3sServerModule.nix - K3s server node configuration generator
  2. genK3sAgentModule.nix - K3s agent/worker node configuration generator
  3. genVmHostModule.nix - physical VM host (bridge + libvirt) configuration generator
  4. genMicrovmGuestModule.nix - NixOS microVM guest configuration generator
  5. genLibvirtDomainXml.nix - libvirt domain XML generator (imported directly by host configs)

Shared Presets

  1. systemdHardening.nix - systemd sandboxing preset for exposed services

Entry Point

  1. default.nix - Main entry point that imports the generators and exports them as a single attribute set, plus the relativeToRoot and scanPaths helpers

Usage

The generators import the shared host modules, so a new machine supplies its own values and system-specific attributes. colmenaSystem covers remote deployment, and genLibvirtDomainXml renders the domain XML for one guest.

Architecture Support

  • x86_64-linux: Primary desktop systems
  • aarch64-linux: ARM64 Linux systems (Apple Silicon, SBCs)
  • aarch64-darwin: Apple Silicon macOS systems