# My Nomarchy machine

This directory is the **single source of truth** for a Nomarchy machine
flake. `nix flake init -t …` copies it as-is; **`nomarchy-install` copies
the same files and only patches** install-time values (username, hostname,
keyboard, detected hardware, password hash, …). Keep commented opt-ins and
`home.packages` here — do not invent a second catalog in the installer.

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
   `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-state-sync` knows where the state lives.

Day-to-day:

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

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