Audited every entry in `installer/hardware-db.sh` against
`inputs.nixos-hardware.nixosModules` and found **21 of 43 entries (49%)
referenced modules that don't exist** in the upstream attribute set —
those installs would fail at eval time with "attribute not found"
errors on real hardware. Specifically:
- Framework 13 per-gen: nixos-hardware uses `framework-11th-gen-intel`,
not `framework-13-11th-gen-intel`. Fixed all four generations.
- Framework 13 AMD AI 300: `framework-amd-ai-300-series` (no "13-").
- Framework Intel Core Ultra: added `framework-intel-core-ultra-series1`.
- Framework 16 AMD AI 300: added `framework-16-amd-ai-300-series`.
- Framework generic fallback now uses the `framework` umbrella module.
- ThinkPad X1 Carbon: modules are `lenovo-thinkpad-x1-Nth-gen`,
not `-x1-carbon-genN`. Fixed gens 6/7/9/10/11; added X1 Nano.
- ThinkPad P14s: requires arch+gen suffix; switched to the AMD gen3/4/5
modules (the prior `lenovo-thinkpad-p14s` had no attribute).
- Surface Pro 6/7/8/10: all share `microsoft-surface-pro-intel`. Pro 9
keeps its dedicated module. Pro 3 fixed to `-pro-3`. Surface Book
2/3 and Intel-based Surface Laptop 3/4/5: no nixos-hardware module
— rows dropped; generic chassis+cpu+gpu detection still emits
sensible `common-pc-laptop`.
- ASUS ROG Strix G513 → `asus-rog-strix-g513im` (correct attr name).
- ASUS ROG Zephyrus GA403 didn't exist — dropped. Added `ga402x`,
`gu603h`, `g533zw`.
- ASUS Zenbook generic `asus-zenbook-ux` was non-existent — dropped
(too vague; available modules are per-model like `asus-zenbook-ux481`).
- Dell Latitude 5400 / 7480: no modules — replaced with the existing
`dell-latitude-7420`, `7430`, `7490`.
Added:
- ROG Ally / Ally X support (`asus-ally-rc71l` for `RC71L`,
`RC72LA`, and the "ROG Ally" product string). nixos-hardware
currently ships one module for both revisions.
Documented (in a footer comment) the devices nixos-hardware doesn't
cover so they're known-unsupported rather than accidentally missing:
- Valve Steam Deck → Jovian-NixOS as a separate flake input.
- Snapdragon X laptops → aarch64 only; Nomarchy installer is x86_64.
- Raspberry Pi → same as above.
Bug discovered along the way: the DB's pipe-separated row format
collides with bash regex alternation. A row like
`Microsoft|Surface Pro (10|8|7|6)|_|module` parses as 7 fields, with
"7" extracted as the module name. Surface Pro variants are now one
row per version.
CI gate added (`.forgejo/workflows/check.yml`): a new step extracts
every 4th-pipe-field from `HARDWARE_DB` and `comm -23`s it against
`inputs.nixos-hardware.nixosModules`. Any future entry pointing at a
non-existent module fails CI with a clear error. Closes the regression
class entirely.
Verified locally: bash -n + shellcheck --severity=error pass on
hardware-db.sh; the CI step's exact commands pass against the new DB.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
👑 Nomarchy
Nomarchy is a professional-grade NixOS distribution that ships a highly curated Hyprland desktop on a strictly declarative, flake-based foundation. It provides a highly polished, "it just works" experience for power users who want a beautiful Wayland environment without sacrificing the reliability of NixOS.
✨ Key Features
- Purely Declarative: Your entire desktop—themes, fonts, wallpapers, and toolchains—is defined in code.
- Modular Merging Architecture: Distro code and user code are strictly separated. You can update the distro core without ever touching or breaking your personal configurations.
- Interactive "Smart" Installer: Detects hardware, sets up networking, localizes timezones/keymaps, and offers multi-select software profiles.
- Erase Your Darlings (Optional): Optional BTRFS root-wipe on boot ensures your system stays pristine and 100% declarative.
- Dynamic Theming Engine: 20+ built-in themes with instant UI feedback via IPC (swww, waybar, and stylix).
- Portable State (
nomarchy-sync): Easily backup and sync your declarative config and dynamic state (theme/wallpaper choices) to a private Git repo.
📂 Component-Based Architecture
Nomarchy uses a Feature-Centric Directory Structure. For a comprehensive breakdown of the system architecture, folder roles, and module logic, see the Detailed Architecture Documentation.
Configuration, modules, and utilities are strictly organized to maintain sanity as the system grows.
core/: Foundational OS & User defaults (Bootloader, Audio, Bluetooth, core system features).features/: Isolated modules containing Nix logic and raw dotfiles.features/apps/: App-specific configs (e.g.,features/apps/btop/,features/apps/kitty/), each containing their owndefault.nixand standaloneconfig/directory mapped via Home Manager.features/desktop/: Desktop environment components (e.g., Hyprland, Waybar).features/scripts/utils/: Consolidated repository for all custom Nomarchy bash scripts, centrally packaged and injected into the user'sPATHwith correct dependencies.
themes/: The global theming engine. It holds pure color data and logic. Theme-specific app layouts (like a custom Waybar layout) are stored directly inside the app's feature folder, solving the matrix problem of theming.
📥 Installation
1. Try it in a VM (Recommended)
Verify the experience without touching your hardware:
./bin/utils/nomarchy-test-installer
This builds a full graphical VM of the installer environment. Once inside, click the Install Nomarchy icon or run nomarchy-install.
2. Build the Installer ISO
To install on physical hardware, generate your own bootable image:
./features/scripts/utils/nomarchy-build-iso # Minimal TTY installer
./features/scripts/utils/nomarchy-build-live-iso # Graphical try-before-install
The ISO will be located at ./result/iso/nixos-*.iso. Flash it to a USB drive and boot.
3. Run the Installer
Once booted into the Live environment, launch the installer:
nomarchy-install
The wizard will guide you through:
- Networking: An interactive wizard to connect to Wi-Fi if needed.
- Hardware: Optimized profiles for Dell XPS, Framework, Apple T2, and more.
- Storage: Choice between Standard Ext4 or Encrypted BTRFS with optional Impermanence.
- Localization: Searchable timezones and keyboard layout selection.
Already on NixOS?
Layer Nomarchy onto an existing 25.11 install without reformatting — see the Migration Guide.
🛠️ Configuration & Usage
Nomarchy uses a "Downstream" model. After installation, your configuration lives in /etc/nixos/ and is split into three main parts:
1. Distro Core (Upstream)
Managed via the public Git repository. This is the engine. You should generally not modify files here.
2. Your System (system.nix)
Add system-wide packages, services, and hardware tweaks here. Example: Adding a persistent directory for Docker if using Impermanence:
environment.persistence."/persist" = {
directories = [ "/var/lib/docker" ];
};
3. Your User Environment (home.nix)
Add user-level packages, aliases, and dotfiles here. Example: Overriding the default terminal:
nomarchy.home.terminal = "kitty";
For the full list of nomarchy.* options you can set in system.nix and home.nix, see the Options Reference. Hit a rebuild error? Check Troubleshooting. For where the project is heading next, see the Roadmap.
Applying Changes
After editing your files, apply them instantly. IMPORTANT: Nomarchy requires the --impure flag for evaluation. You MUST use the following aliases rather than standard NixOS commands:
sys-update # Rebuilds the NixOS system (Runs: sudo nixos-rebuild switch --flake .#default --impure)
env-update # Reloads your Home Manager environment (Runs: home-manager switch --flake .#default --impure)
🚀 Commands & Keybindings
The full list lives in docs/KEYBINDINGS.md (auto-generated from the Hyprland configs). A few highlights:
| Keybinding | Action |
|---|---|
Super + Space |
App Launcher (Walker) |
Super + Shift + Space |
Nomarchy Menu (Walker) |
Super + Alt + Space |
Toggle Top Bar (Waybar) |
Super + Return |
Open Terminal |
Super + Q |
Close Window |
Utility Scripts
Nomarchy includes dozens of productivity scripts available in your PATH. Some highlights:
nomarchy-sync push <repo>: Backup your setup to Git.nomarchy-theme-bg-next: Cycle to the next wallpaper in the current theme.nomarchy-menu: The central hub for all utilities and pickers.
Built with ❤️ using NixOS, Hyprland, Stylix, and the Nomarchy Community.