chore(install): stop writing distro-default config into system.nix

console.useXkbConfig and boot.initrd.systemd.enable are set distro-wide
(lib.mkDefault true in modules/nixos/default.nix, since the LUKS-keymap
fix), so the installer rewriting them in the generated system.nix was
redundant. Drop them there and from the offline-pin test fixture in
flake.nix — the nomarchy module still defaults them on, so the closure
(and the pin set) is unchanged; verified the values still resolve true
and `nix flake check` passes. Only the machine-specific xkb layout is
written now. Adjusts the README keyboard-option wording to match.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-14 20:42:36 +01:00
parent f60f3655f9
commit 8c47716f9a
3 changed files with 7 additions and 14 deletions

View File

@@ -186,7 +186,7 @@ examples: **[docs/OVERRIDES.md](docs/OVERRIDES.md)**.
|---|---|---| |---|---|---|
| `nomarchy.stateFile` | — (required) | Path to your theme-state.json | | `nomarchy.stateFile` | — (required) | Path to your theme-state.json |
| `nomarchy.terminal` | `"ghostty"` | Terminal for keybinds and `$TERMINAL` | | `nomarchy.terminal` | `"ghostty"` | Terminal for keybinds and `$TERMINAL` |
| `nomarchy.keyboard.layout` | `"us"` | XKB layout for the Hyprland session (installer writes it; pairs with xkb + `console.useXkbConfig` in system.nix) | | `nomarchy.keyboard.layout` | `"us"` | XKB layout for the Hyprland session (installer writes the matching `services.xserver.xkb` in system.nix; the console + LUKS prompt follow via the distro default) |
| `nomarchy.keyboard.variant` | `""` | XKB variant for the session | | `nomarchy.keyboard.variant` | `""` | XKB variant for the session |
| `nomarchy.hyprland.enable` | `true` | Nomarchy's Hyprland config | | `nomarchy.hyprland.enable` | `true` | Nomarchy's Hyprland config |
| `nomarchy.waybar.enable` | `true` | Nomarchy's Waybar | | `nomarchy.waybar.enable` | `true` | Nomarchy's Waybar |

View File

@@ -252,12 +252,6 @@
({ lib, ... }: { ({ lib, ... }: {
nomarchy.system.snapper.enable = true; nomarchy.system.snapper.enable = true;
nomarchy.system.greeter.autoLogin = username; nomarchy.system.greeter.autoLogin = username;
# The installer writes these (keyboard-everywhere
# incl. the LUKS prompt) — mirror them or the
# initrd/vconsole pins don't match an offline
# install's rebuild set.
console.useXkbConfig = true;
boot.initrd.systemd.enable = true;
# nixos-generate-config keys microcode off # nixos-generate-config keys microcode off
# enableRedistributableFirmware (now on): the # enableRedistributableFirmware (now on): the
# real machine enables exactly one vendor — # real machine enables exactly one vendor —

View File

@@ -444,15 +444,14 @@ cat > "$FLAKE_DIR/system.nix" <<EOF
time.timeZone = "$TIMEZONE"; time.timeZone = "$TIMEZONE";
i18n.defaultLocale = "$LOCALE"; i18n.defaultLocale = "$LOCALE";
# One keyboard layout everywhere: xkb is the source of truth, the # One keyboard layout everywhere: xkb is the source of truth, and the
# virtual console derives from it (greeter/ttys), and the systemd # distro defaults (console.useXkbConfig + the systemd initrd, set in
# initrd applies it to the LUKS passphrase prompt too (the classic # the nomarchy module) derive the virtual console and the LUKS
# script initrd cannot). The Hyprland session reads the same layout # passphrase prompt from it — so only the chosen layout is written here.
# from nomarchy.keyboard.* in home.nix. # The Hyprland session reads the same layout from nomarchy.keyboard.* in
# home.nix.
services.xserver.xkb.layout = "$KB_LAYOUT"; services.xserver.xkb.layout = "$KB_LAYOUT";
services.xserver.xkb.variant = "$KB_VARIANT"; services.xserver.xkb.variant = "$KB_VARIANT";
console.useXkbConfig = true;
boot.initrd.systemd.enable = true;
# Your login user — \`username\` flows in from flake.nix automatically. # Your login user — \`username\` flows in from flake.nix automatically.
users.users.\${username} = { users.users.\${username} = {