From f08aa29c7aa6d37fb89042574adcc4d54dc8c8ed Mon Sep 17 00:00:00 2001 From: The_miro Date: Wed, 20 May 2026 00:18:54 +0200 Subject: [PATCH] feat(archiso): add keymap selection to launch.sh, default de-latin1-nodeadkeys Co-Authored-By: Claude Sonnet 4.6 --- setup/archiso/overlay/airootfs/root/launch.sh | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/setup/archiso/overlay/airootfs/root/launch.sh b/setup/archiso/overlay/airootfs/root/launch.sh index a502418..e235889 100644 --- a/setup/archiso/overlay/airootfs/root/launch.sh +++ b/setup/archiso/overlay/airootfs/root/launch.sh @@ -1,7 +1,40 @@ #!/usr/bin/env bash set -euo pipefail INSTALLER_DIR="$HOME/installer" -case "${1:-guided}" in + +############################################ +# Keyboard layout (live environment) +# To add more layouts: append "code|Display Name" to KEYMAPS +############################################ +KEYMAPS=( + "de-latin1-nodeadkeys|German/Austrian (nodeadkeys)" + "us|English US" + "de|German" +) + +MODE="${1:-guided}" + +if [[ "$MODE" == "auto" ]]; then + LIVE_KEYMAP="${KEYMAPS[0]%%|*}" +else + echo "Select keyboard layout:" + for i in "${!KEYMAPS[@]}"; do + _km_code="${KEYMAPS[$i]%%|*}" + _km_name="${KEYMAPS[$i]##*|}" + printf " %d) %-32s (%s)\n" $((i+1)) "$_km_name" "$_km_code" + done + read -rp "Choice [1]: " _KM_IDX + _KM_IDX=$(( ${_KM_IDX:-1} - 1 )) + if (( _KM_IDX >= 0 && _KM_IDX < ${#KEYMAPS[@]} )); then + LIVE_KEYMAP="${KEYMAPS[$_KM_IDX]%%|*}" + else + LIVE_KEYMAP="${KEYMAPS[0]%%|*}" + fi +fi + +loadkeys "$LIVE_KEYMAP" + +case "$MODE" in auto) exec bash "$INSTALLER_DIR/arch-autoinstall.sh" "${@:2}" ;; guided) exec bash "$INSTALLER_DIR/archbaseos-guided-install.sh" ;; *) exec bash "$INSTALLER_DIR/archbaseos-guided-install.sh" ;;