fix(keyboard): carry the configured layout to the LUKS prompt
Setting only services.xserver.xkb.layout moves the graphical session but leaves console.useXkbConfig unset, so the virtual-console keymap -- and the systemd initrd the LUKS passphrase prompt runs in -- fall back to US (seen on a Latitude 5410: X11 Layout gb, VC Keymap unset, LUKS prompt US). Default console.useXkbConfig + console.earlySetup + boot.initrd.systemd.enable distro-wide, so xkb.layout alone reaches the console and the encrypted-disk prompt. Moved the latter two out of plymouth.nix -- they no longer hinge on the splash being enabled. All mkDefault: an explicit console.keyMap or a scripted initrd still wins. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -50,6 +50,25 @@ in
|
||||
# `nixpkgs.config = lib.mkForce { allowUnfree = false; }`.
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# ── One keyboard layout everywhere, incl. the LUKS prompt ────────
|
||||
# services.xserver.xkb.layout is the single source of truth for the
|
||||
# layout (the installer writes it; downstream sets it in system.nix).
|
||||
# These bridge that one knob through to the encrypted-disk prompt —
|
||||
# without them, setting only xkb.layout moves the graphical session
|
||||
# but leaves the console keymap unset, so the initrd LUKS passphrase
|
||||
# prompt falls back to US:
|
||||
# useXkbConfig the virtual-console keymap follows xkb (TTYs)
|
||||
# earlySetup bakes that keymap into the initrd
|
||||
# systemd initrd loads it before cryptsetup asks for the passphrase
|
||||
# (the legacy scripted initrd cannot; also what
|
||||
# Plymouth needs — defaulted here so it no longer
|
||||
# hinges on the splash being enabled).
|
||||
# All mkDefault, so an explicit console.keyMap or a scripted initrd
|
||||
# still wins.
|
||||
console.useXkbConfig = lib.mkDefault true;
|
||||
console.earlySetup = lib.mkDefault true;
|
||||
boot.initrd.systemd.enable = lib.mkDefault true;
|
||||
|
||||
# ── Wayland session: Hyprland ────────────────────────────────────
|
||||
# Installs the binary, registers the session, wires up
|
||||
# xdg-desktop-portal-hyprland. Configuration is Home Manager's job.
|
||||
|
||||
Reference in New Issue
Block a user