Only bundle vconsole.conf in the initramfs for Latin keyboard layouts
Bundling vconsole.conf makes Plymouth apply the user's layout at the LUKS prompt, but for layouts whose letter keys aren't Latin (Hebrew, Greek, Cyrillic, Arabic, ...) that makes the necessarily-Latin passphrase untypeable and locks the user out of their machine. mkinitcpio sources its conf.d drop-ins as shell, so omarchy_hooks.conf now checks XKBLAYOUT at every rebuild and only bundles the file for Latin layouts; non-Latin layouts keep the US fallback the passphrase was set under. A migration strips the unconditional line and rebuilds the UKI on affected installs. Closes #6229. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
7bfb8cf954
commit
c030337cb6
@@ -1,2 +1,12 @@
|
||||
HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs)
|
||||
FILES+=(/etc/vconsole.conf)
|
||||
|
||||
# Bundle vconsole.conf so Plymouth uses the configured keyboard layout at the
|
||||
# LUKS prompt, but only when that layout types Latin letters. Passphrases are
|
||||
# Latin characters, so bundling a Hebrew/Greek/Cyrillic/Arabic layout would
|
||||
# make the correct passphrase untypeable and lock the user out.
|
||||
if [[ -f /etc/vconsole.conf ]]; then
|
||||
case $(. /etc/vconsole.conf && echo "${XKBLAYOUT%%,*}") in
|
||||
af | am | ara | bd | bg | by | et | ge | gr | il | in | iq | ir | kg | kh | kz | la | lk | mk | mm | mn | mv | np | rs | ru | sy | th | tj | ua) ;;
|
||||
*) FILES+=(/etc/vconsole.conf) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user