feat(setup): add keymap selection dialog to guided installer

Prompts for us/de keymap interactively; reads .keymap from answerfile in unattended mode. Writes /etc/vconsole.conf in chroot.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
main
The_miro 2026-05-19 23:18:50 +02:00
parent 9e541eb21b
commit ef599a111e
1 changed files with 15 additions and 0 deletions

View File

@ -125,8 +125,10 @@ if $AF_MODE; then
ENABLE_FIDO_ROOT=$(af_bool '.fido2_root') ENABLE_FIDO_ROOT=$(af_bool '.fido2_root')
ENABLE_FIDO_USER=$(af_bool '.fido2_user') ENABLE_FIDO_USER=$(af_bool '.fido2_user')
RUN_TUI=$(af_bool '.run_tui') RUN_TUI=$(af_bool '.run_tui')
KEYMAP=$(af_get '.keymap' 'us')
echo "Kernel: $KERNEL / Hostname: $HOSTNAME / Username: $USERNAME" echo "Kernel: $KERNEL / Hostname: $HOSTNAME / Username: $USERNAME"
echo "Encrypt: $ENCRYPT_DISK / FIDO2 root: $ENABLE_FIDO_ROOT / FIDO2 user: $ENABLE_FIDO_USER" echo "Encrypt: $ENCRYPT_DISK / FIDO2 root: $ENABLE_FIDO_ROOT / FIDO2 user: $ENABLE_FIDO_USER"
echo "Keymap: $KEYMAP"
else else
KERNEL=$(ask "Kernel (linux, linux-lts, linux-zen)") KERNEL=$(ask "Kernel (linux, linux-lts, linux-zen)")
HOSTNAME=$(ask "Hostname") HOSTNAME=$(ask "Hostname")
@ -137,6 +139,16 @@ else
read -rp "Enable FIDO2 for unlocking root? (YES/NO): " ENABLE_FIDO_ROOT read -rp "Enable FIDO2 for unlocking root? (YES/NO): " ENABLE_FIDO_ROOT
fi fi
read -rp "Enable FIDO2 for user login? (YES/NO): " ENABLE_FIDO_USER read -rp "Enable FIDO2 for user login? (YES/NO): " ENABLE_FIDO_USER
echo ""
echo "Select keyboard layout:"
echo " 1) English US (us)"
echo " 2) German (de)"
read -rp "Choice [1]: " _KM_CHOICE
case "${_KM_CHOICE:-1}" in
2) KEYMAP="de" ;;
*) KEYMAP="us" ;;
esac
fi fi
read -rsp "Password for $USERNAME: " USERPASS; echo read -rsp "Password for $USERNAME: " USERPASS; echo
@ -240,6 +252,7 @@ arch-chroot /mnt /usr/bin/env \
ENABLE_FIDO_USER="$ENABLE_FIDO_USER" \ ENABLE_FIDO_USER="$ENABLE_FIDO_USER" \
ROOT_UUID="$ROOT_UUID" \ ROOT_UUID="$ROOT_UUID" \
ROOT_PART="$ROOT_PART" \ ROOT_PART="$ROOT_PART" \
KEYMAP="$KEYMAP" \
/bin/bash <<'CHROOT_EOF' /bin/bash <<'CHROOT_EOF'
set -euo pipefail set -euo pipefail
@ -248,6 +261,8 @@ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
locale-gen locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf echo "LANG=en_US.UTF-8" > /etc/locale.conf
echo "KEYMAP=${KEYMAP}" > /etc/vconsole.conf
ln -sf /usr/share/zoneinfo/Europe/Vienna /etc/localtime ln -sf /usr/share/zoneinfo/Europe/Vienna /etc/localtime
hwclock --systohc hwclock --systohc