my nix configs
  • Nix 54.1%
  • Python 42.1%
  • HTML 2%
  • Shell 1.3%
  • Rust 0.5%
Find a file
Hermes d4ec120850 fix(amd): point WoL at the cabled enp13s0, retire the ath12k fiction
The board swap (MSI X870 Tomahawk -> Gigabyte X870E AORUS MASTER X3D ICE)
left two pieces of network config describing hardware that is gone:

- Wake-on-LAN was enabled for enp7s0/enp8s0. Neither name exists on this
  board any more (systemd-sysctl logs 'No such file or directory' for
  both at every boot). The live wired ports are enp13s0 (RTL8127 10GbE,
  0d:00.0) and enp17s0 (RTL8126 5GbE, 11:00.0); only enp13s0 is cabled
  (journal: 'Link is Up - 1Gbps/Full', holds the FRITZ!Box lease and the
  tailscale default route), enp17s0 logs 'Link is Down'. WoL now goes on
  enp13s0 only.

- boot.blacklistedKernelModules = [ ath12k_wifi7 ] and its comment
  described the old board's Qualcomm WCN785x. That card left with the
  board; the Wi-Fi here is a MediaTek MT7927 (14c3:7927 at 0e:00.0)
  which enumerates but has no driver bound and never produced a wl
  interface. The blacklist was inert and its rationale wrong, so it is
  removed; wireless.enable = mkForce false stays (NetworkManager would
  otherwise pull in wpa_supplicant), with a comment that matches the
  actual card.
2026-08-31 20:41:52 +02:00
.forgejo/workflows ci: drop nix flake build from PR check, check only 2026-08-15 21:54:12 +02:00
.secrets refactor(t15): remove host from fleet 2026-08-25 13:11:53 +02:00
config fix(llm): move the vision alias onto gpu1's multimodal Flash-Next 2026-08-27 00:50:13 +02:00
docs feat(llm): add --sleep-on-idle to the gpu1 SGLang server 2026-08-27 09:00:45 +02:00
lib refactor(t15): remove host from fleet 2026-08-25 13:11:53 +02:00
modules fix(garmy): roll over the OAuth2 access token instead of a daily full relogin 2026-08-30 18:50:56 +02:00
overlays fix(overlays): skip statix's broken tests on the pinned version 2026-08-27 00:24:06 +02:00
packages fix(garmy): roll over the OAuth2 access token instead of a daily full relogin 2026-08-30 18:50:56 +02:00
shells refactor(flake): localize host-specific inputs 2026-08-25 14:01:53 +02:00
systems fix(amd): point WoL at the cabled enp13s0, retire the ath12k fiction 2026-08-31 20:41:52 +02:00
.gitignore chore(gitignore): add .pi-lens 2026-08-05 01:49:46 +02:00
.sops.yaml refactor(t15): remove host from fleet 2026-08-25 13:11:53 +02:00
AGENTS.md chore: symlink AGENTS.md to CLAUDE.md and update commit template 2026-07-02 12:27:52 +02:00
CLAUDE.md docs: record that a probe should check the local hostname before ssh 2026-08-27 12:43:14 +02:00
flake.lock chore: refresh flake.lock 2026-08-30 01:06:30 +02:00
flake.nix fix(darwin): avoid duplicate nix-homebrew module 2026-08-25 15:15:40 +02:00
README.md docs: update README with project structure and instructions 2025-03-20 09:43:18 +01:00
statix.toml chore: add statix.toml suppressing repeated_keys 2026-07-04 12:17:28 +02:00

NixOS Configuration

A modular NixOS configuration setup for multiple systems.

Project Structure

  • modules/: Reusable NixOS/Darwin modules
    • common.nix: Common module imports and definitions
    • nixos/: NixOS-specific modules
      • home/: Home Manager integration for NixOS
      • nix/: Nix package manager configuration
      • nix-ld/: Dynamic linking support
      • network/: Network configuration modules
        • resolved/: DNS resolution configuration
      • security/: Security-related modules
        • ssh-host-keys/: SSH host key management
      • services/: Service configuration modules
        • base/: Basic system configuration
        • gui/: Graphical interface setup
        • homeprinter/: Home printer support
        • podman/: Container runtime
        • secureboot/: Secure boot configuration
      • sgx/: Intel SGX support
        • aesmd_dcap/: SGX AESMD DCAP service
        • pccs/: SGX Provisioning Certificate Caching Service
      • system/: System configuration modules
        • auto-upgrade/: Automatic system upgrades
        • limits/: System resource limits
        • zram/: ZRAM swap configuration
      • tools/: Common tools configuration
        • direnv/: Direnv integration
        • git/: Git configuration
      • user/: User account configuration
      • virtualization/: Virtualization support
    • home/: Home Manager modules
      • cli-apps/: Command-line applications
      • gui/: GUI application configuration
      • tools/: User tools configuration
      • user/: User preferences
    • darwin/: Darwin-specific modules
      • home/, nix/, security/, etc.
  • systems/: Individual system configurations
    • x86_64-linux/: Linux systems on x86_64
    • aarch64-linux/: Linux systems on ARM
    • x86_64-darwin/: macOS systems on x86_64
    • aarch64-darwin/: macOS systems on ARM
  • homes/: Home Manager configurations for each user/system
  • lib/: Helper functions and utilities
  • overlays/: Nixpkgs overlays
  • packages/: Custom packages

Using the Configurations

Install a system via nixos-anywhere

$ nix run github:numtide/nixos-anywhere -- \
  --flake 'git+https://git.hoyer.xyz/harald/nixcfg'.#hostname \
  root@hostname --no-reboot --tty -i $HOME/.ssh/id_ed25519
... enter disk password
$ ssh -t root@hostname systemd-cryptenroll /dev/luksdev --wipe-slot=tpm2 --tpm2-device=auto --tpm2-pcrs=1,15

Update NixOS system

$ nixos-rebuild --use-remote-sudo -L --show-trace --refresh --flake git+https://git.hoyer.xyz/harald/nixcfg boot

Update macOS system

$ darwin-rebuild -L --show-trace --refresh --flake git+https://git.hoyer.xyz/harald/nixcfg switch

Update home-manager configuration

$ nix --refresh run 'git+https://git.hoyer.xyz/harald/nixcfg' -- \
  switch -b backup --flake 'git+https://git.hoyer.xyz/harald/nixcfg'