feat(keymap): route installer layout choice into Hyprland's Wayland session

core/home/config/nomarchy/default/hypr/input.conf hardcoded
`kb_layout = us`, so the installer's services.xserver.xkb.layout and
console.keyMap writes (both set from the installer's KEYMAP_LAYOUT
prompt) only reached XWayland apps and the TTY console. Native-Wayland
apps — i.e. almost everything in a Nomarchy desktop — fell back to US
regardless of what the user picked. Surprising for any non-US user.

Path (a) from the Later row:

  - Added nomarchy.keymap.{layout,variant} to core/home/options.nix
    (defaults "us" / "").
  - Deleted the static input.conf from the bulk nomarchy/ deploy.
  - Replaced it with an explicit
    xdg.configFile."nomarchy/default/hypr/input.conf".text in
    core/home/configs.nix that interpolates the option values into
    kb_layout / kb_variant.
  - Installer's home.nix heredoc now writes
      nomarchy.keymap = { layout = "$KEYMAP_LAYOUT"; variant = "$KEYMAP_VARIANT"; };
    alongside nomarchy.formFactor, so the layout reaches Hyprland
    consistently with system.nix's xkb.layout / console.keyMap.

Documented in docs/OPTIONS.md (new `nomarchy.keymap.layout` /
`nomarchy.keymap.variant` entry). `nix flake check --no-build` clean.
This commit is contained in:
Bernardo Magri
2026-05-22 18:14:17 +01:00
parent be597571ad
commit 3bcd92df02
6 changed files with 70 additions and 22 deletions

View File

@@ -181,6 +181,10 @@ Without prime config, supergfxd still switches modes but render-offload via `nvi
`enum [ "laptop" "desktop" ]`, default `"laptop"`. Mirror of `nomarchy.system.formFactor`. Filters laptop-only widgets out of waybar (battery) when set to `"desktop"`. The installer writes both system and home values together.
### `nomarchy.keymap.layout` / `nomarchy.keymap.variant`
`str` / `str`, defaults `"us"` / `""`. Keyboard layout and variant for Hyprland's native Wayland session. `system.nix` writes `services.xserver.xkb.layout` (XWayland) and `console.keyMap` (TTY) to the same value, but Hyprland reads its own input config so this option must be set independently — otherwise a non-US user gets the right layout in XWayland apps and the console but the US fallback inside native-Wayland apps. The installer writes both fields into the generated `home.nix` alongside `nomarchy.formFactor`. Example: `nomarchy.keymap = { layout = "dk"; variant = ""; };`.
### `nomarchy.wallpaper`
`str`, default `""`. Absolute path to a wallpaper override. Empty string means "use the active theme's default wallpaper".