Files
Nomarchy/templates/downstream
Bernardo Magri bdf20f2d8e feat(hardware): xe-aware GuC, class-based NPU detect, latestKernel + VM test
Harden the hardware-enablement broad seed for newer hardware:

- xe vs i915: intel.guc emits the i915 param (i915.enable_guc=3), which the
  newer `xe` driver (Lunar Lake / Battlemage / Panther Lake, recent Xe GPUs)
  ignores — it enables GuC by default. hardware-db.sh now reads the in-use
  GPU driver (lspci -k) and writes `intel.guc = false` on xe hardware, so the
  toggle isn't a misleading no-op there.

- NPU detection by PCI accelerator class [1200] (+ keywords), attributing the
  vendor, instead of a fixed device-ID list — so new NPUs (e.g. Panther Lake)
  are caught without a code change. Known IDs kept as a fallback/reference.

- Kernel awareness: a nomarchy.hardware.latestKernel escape hatch
  (linuxPackages_latest) for very-new hardware whose drivers only just landed,
  and a build-time warning when npu.enable predates the shipped kernel
  (amdxdna needs 6.14+, intel_vpu wants recent). Downstream default is 6.18,
  which already carries amd-pstate + amdxdna; the reference host pins latest.

- VM test (checks.hardware-toggles, pkgs.testers.runNixOSTest): boots a
  minimal VM with the toggles on and asserts the config landed — amd_pstate
  + i915.enable_guc in /proc/cmdline, fprintd.service present, pam_fprintd in
  /etc/pam.d/sudo. Passing. (Hardware behaviour still needs bare metal.)

Docs: README + template note latestKernel; ROADMAP records the hardening.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 20:13:31 +01:00
..

My Nomarchy machine

  1. Overwrite the placeholder hardware config with the real one: nixos-generate-config --show-hardware-config > hardware-configuration.nix
  2. Set flake.nix up once (Nomarchy repo URL, your username, optionally a hardwareProfile from https://github.com/NixOS/nixos-hardware — an unknown name fails the rebuild with suggestions). After that the flake is never touched again: your machine lives in system.nix (hostname, services — the login user is created from username automatically) and home.nix (your packages).
  3. git init && git add -A — flakes only see tracked files, including theme-state.json.
  4. System: sudo nixos-rebuild switch --flake .#default
  5. Desktop: nix run home-manager -- switch --flake .#me (afterwards just home-manager switch --flake .#me — it's installed)
  6. Clone/symlink this directory to ~/.nomarchy (or export NOMARCHY_PATH) so nomarchy-theme-sync knows where the state lives.

Day-to-day:

nomarchy-theme-sync list             # 21 shipped presets
nomarchy-theme-sync apply gruvbox    # writes state + home-manager switch
nomarchy-theme-sync bg next          # cycle wallpapers (instant, no rebuild)

The system layer only needs nixos-rebuild when you change system.nix.