From 02f45d133e5ab923a830345d103557b173e294a4 Mon Sep 17 00:00:00 2001 From: Bernhard Landauer Date: Mon, 13 Mar 2017 15:56:23 +0100 Subject: [PATCH] include set_keymap in initial language selection --- lib/util-base.sh | 29 ----------------------------- lib/util-menu.sh | 29 +++++++++++++---------------- lib/util.sh | 46 +++++++++++++++++++++++++++++++++++++++------- 3 files changed, 52 insertions(+), 52 deletions(-) diff --git a/lib/util-base.sh b/lib/util-base.sh index 2ebc727..8de3c6a 100644 --- a/lib/util-base.sh +++ b/lib/util-base.sh @@ -549,35 +549,6 @@ run_mkinitcpio() { check_for_error "$FUNCNAME" "$?" } -# virtual console keymap -set_keymap() { - KEYMAPS="" - for i in $(ls -R /usr/share/kbd/keymaps | grep "map.gz" | sed 's/\.map\.gz//g' | sort); do - KEYMAPS="${KEYMAPS} ${i} -" - done - - DIALOG " $_VCKeymapTitle " --menu "$_VCKeymapBody" 20 40 16 ${KEYMAPS} 2>${ANSWER} || return 0 - KEYMAP=$(cat ${ANSWER}) - - loadkeys $KEYMAP 2>$ERR - check_for_error "loadkeys $KEYMAP" "$?" - ini linux.keymap "$KEYMAP" - # set keymap for openrc too - echo "keymap=\"$KEYMAP\"" > /tmp/keymap - biggest_resolution=$(head -n 1 /sys/class/drm/card*/*/modes | awk -F'[^0-9]*' '{print $1}' | awk 'BEGIN{a= 0}{if ($1>a) a=$1 fi} END{print a}') - # Choose terminus font size depending on resolution - if [[ $biggest_resolution -gt 1920 ]]; then - FONT=ter-124n - elif [[ $biggest_resolution -eq 1920 ]]; then - FONT=ter-118n - else - FONT=ter-114n - fi - ini linux.font "$FONT" - echo -e "KEYMAP=${KEYMAP}\nFONT=${FONT}" > /tmp/vconsole.conf - echo -e "consolefont=\"${FONT}\"" > /tmp/consolefont -} - # locale array generation code adapted from the Manjaro 0.8 installer set_locale() { LOCALES="" diff --git a/lib/util-menu.sh b/lib/util-menu.sh index 071f82b..752b8c6 100644 --- a/lib/util-menu.sh +++ b/lib/util-menu.sh @@ -53,30 +53,27 @@ prep_menu() { local PARENT="$FUNCNAME" declare -i loopmenu=1 while ((loopmenu)); do - submenu 7 - DIALOG " $_PrepMenuTitle " --default-item ${HIGHLIGHT_SUB} --menu "$_PrepMenuBody" 0 0 7 \ - "1" "$_VCKeymapTitle" \ - "2" "$_DevShowOpt" \ - "3" "$_PrepPartDisk" \ - "4" "$_PrepLUKS" \ - "5" "$_PrepLVM $_PrepLVM2" \ - "6" "$_PrepMntPart" \ - "7" "$_Back" 2>${ANSWER} + submenu 6 + DIALOG " $_PrepMenuTitle " --default-item ${HIGHLIGHT_SUB} --menu "$_PrepMenuBody" 0 0 6 \ + "1" "$_DevShowOpt" \ + "2" "$_PrepPartDisk" \ + "3" "$_PrepLUKS" \ + "4" "$_PrepLVM $_PrepLVM2" \ + "5" "$_PrepMntPart" \ + "6" "$_Back" 2>${ANSWER} HIGHLIGHT_SUB=$(cat ${ANSWER}) case $(cat ${ANSWER}) in - "1") set_keymap - ;; - "2") show_devices + "1") show_devices ;; - "3") umount_partitions + "2") umount_partitions select_device && create_partitions ;; - "4") luks_menu + "3") luks_menu ;; - "5") lvm_menu + "4") lvm_menu ;; - "6") mount_partitions + "5") mount_partitions ;; *) loopmenu=0 return 0 diff --git a/lib/util.sh b/lib/util.sh index fb97d00..c114b90 100644 --- a/lib/util.sh +++ b/lib/util.sh @@ -206,6 +206,7 @@ check_for_error() { # Add locale on-the-fly and sets source translation file for installer select_language() { + fl="1" # terminus-font variation supporting most languages, to be processed in set_keymap() if [[ $(cat ${LANGSEL} 2>/dev/null) == "" ]]; then DIALOG " Select Language " --default-item '3' --menu "\n$_Lang" 0 0 11 \ "1" $"Danish|(da_DK)" \ @@ -239,7 +240,7 @@ select_language() { ;; "6") source $DATADIR/translations/hungarian.trans CURR_LOCALE="hu_HU.UTF-8" - FONT="ter-216n" + fl="2" ;; "7") source $DATADIR/translations/italian.trans CURR_LOCALE="it_IT.UTF-8" @@ -252,7 +253,7 @@ select_language() { ;; "10") source $DATADIR/translations/russian.trans CURR_LOCALE="ru_RU.UTF-8" - FONT="ter-u16n" + fl="u" ;; "11") source $DATADIR/translations/spanish.trans CURR_LOCALE="es_ES.UTF-8" @@ -261,21 +262,52 @@ select_language() { ;; esac + set_keymap + # Generate the chosen locale and set the language DIALOG " $_Config " --infobox "$_ApplySet" 0 0 - sleep 2 sed -i "s/#${CURR_LOCALE}/${CURR_LOCALE}/" /etc/locale.gen locale-gen >/dev/null 2>$ERR export LANG=${CURR_LOCALE} check_for_error "set LANG=${CURR_LOCALE}" $? ini system.lang "$CURR_LOCALE" + } +} + +# virtual console keymap and font +set_keymap() { + KEYMAPS="" + for i in $(ls -R /usr/share/kbd/keymaps | grep "map.gz" | sed 's/\.map\.gz//g' | sort); do + KEYMAPS="${KEYMAPS} ${i} -" + done + + DIALOG " $_VCKeymapTitle " --menu "$_VCKeymapBody" 20 40 16 ${KEYMAPS} 2>${ANSWER} || return 0 + KEYMAP=$(cat ${ANSWER}) + + loadkeys $KEYMAP 2>$ERR + check_for_error "loadkeys $KEYMAP" "$?" + ini linux.keymap "$KEYMAP" + # set keymap for openrc too + echo "keymap=\"$KEYMAP\"" > /tmp/keymap + biggest_resolution=$(head -n 1 /sys/class/drm/card*/*/modes | awk -F'[^0-9]*' '{print $1}' | awk 'BEGIN{a= 0}{if ($1>a) a=$1 fi} END{print a}') + # Choose terminus font size depending on resolution + if [[ $biggest_resolution -gt 1920 ]]; then + fs="24" + elif [[ $biggest_resolution -eq 1920 ]]; then + fs="18" + else + fs="16" + fi + FONT="ter-${fl}${fs}n" + ini linux.font "$FONT" + echo -e "KEYMAP=${KEYMAP}\nFONT=${FONT}" > /tmp/vconsole.conf + echo -e "consolefont=\"${FONT}\"" > /tmp/consolefont [[ $FONT != "" ]] && { - setfont $FONT 2>$ERR - check_for_error "set font $FONT" $? - ini system.font "$FONT" - } + setfont $FONT 2>$ERR + check_for_error "set font $FONT" $? + ini system.font "$FONT" } mk_connection() {