Skip to content

Persist XKB-only installer layouts (Thai) into vconsole.conf - #141

Open
kengggg wants to merge 1 commit into
omacom:quattrofrom
kengggg:feature/xkb-only-keyboard
Open

Persist XKB-only installer layouts (Thai) into vconsole.conf#141
kengggg wants to merge 1 commit into
omacom:quattrofrom
kengggg:feature/xkb-only-keyboard

Conversation

@kengggg

@kengggg kengggg commented Aug 31, 2026

Copy link
Copy Markdown

Some layouts the shared setup-form.sh picker now offers are XKB layouts, not kbd console keymaps (th today). configure_keyboard used to return False for those, so the installed vconsole.conf never got XKBLAYOUT and Hyprland fell back to US.

For names listed in OMARCHY_XKB_ONLY_LAYOUTS, write KEYMAP=us (so systemd-firstboot and LUKS stay Latin) and XKBLAYOUT=<choice>. Unknown names that are not on that list still return False. The live configurator loadkeys uses omarchy_console_keymap_for from the vendored form so Thai keeps a US console during password entry.

Depends on omacom/omarchy#9358 (adds the picker row and OMARCHY_XKB_ONLY_LAYOUTS).

Testing

  • python test/unit/test_keyboard.py — real configure_keyboard + systemd-firstboot --root:
    • every remaining console keymap still writes KEYMAP=<itself>
    • th writes KEYMAP=us / XKBLAYOUT=th and keeps FONT
    • definitely-not-a-keymap still refused
  • ./test/all green (66 Python tests + existing shell unit tests)

ISO QEMU (./bin/omarchy-iso-make --local-source ../omarchy then ./bin/omarchy-iso-boot) was not run here: no qemu-system-x86_64. The install persist path this PR owns is configure_keyboard, which the unit tests drive against a fake root with the real systemd-firstboot.

Picker values that kbd does not ship (Thai today) used to be rejected, so the installed system stayed US. Write KEYMAP=us and XKBLAYOUT=<choice> for names in OMARCHY_XKB_ONLY_LAYOUTS, and loadkeys us on the live console so LUKS stays Latin.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant