archboot/usr/bin/archboot-vconsole.sh

85 lines
3.1 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-2.0-only
2008-10-20 22:39:25 +02:00
# written by Tobias Powalowski <tpowa@archlinux.org>
. /usr/lib/archboot/basic-common.sh
_TITLE="Archboot ${_RUNNING_ARCH} | Basic Setup | Vconsole Configuration"
2023-01-09 08:57:23 +01:00
_LIST_MAPS="localectl list-keymaps --no-pager"
2023-07-13 11:24:32 +02:00
2023-07-14 16:22:31 +02:00
_vconsole() {
_dialog --infobox "Setting vconsole font ${_FONT} and keymap ${_KEYMAP}..." 3 80
2023-01-08 08:57:51 +01:00
echo KEYMAP="${_KEYMAP}" > /etc/vconsole.conf
echo FONT="${_FONT}" >> /etc/vconsole.conf
systemctl restart systemd-vconsole-setup
2023-07-14 11:38:57 +02:00
sleep 3
2023-07-14 11:34:34 +02:00
_dialog --infobox "Vconsole configuration completed successfully." 3 50
2023-07-14 11:23:46 +02:00
sleep 3
return 0
2022-11-27 19:23:06 +01:00
}
2023-07-14 16:20:37 +02:00
_vconsole_font() {
2023-07-13 11:24:32 +02:00
_CONTINUE=""
while [[ -z "${_CONTINUE}" ]]; do
2023-07-13 14:56:53 +02:00
if grep -q '^FONT=.*32' /etc/vconsole.conf; then
_FONTS="ter-v32n Worldwide latarcyrheb-sun32 Worldwide"
else
_FONTS="ter-v16n Worldwide latarcyrheb-sun16 Worldwide eurlatgr Europe"
fi
2022-11-28 08:27:14 +01:00
#shellcheck disable=SC2086
2023-07-15 13:53:54 +02:00
if _dialog --cancel-label "${_LABEL}" --title " Vconsole Font " --menu "" 9 40 3 ${_FONTS} 2>${_ANSWER}; then
2023-07-13 11:24:32 +02:00
#shellcheck disable=SC2086
_FONT=$(cat ${_ANSWER})
_CONTINUE=1
else
_abort
fi
done
2023-07-14 16:20:37 +02:00
}
_vconsole_keymap() {
2023-07-13 11:24:32 +02:00
_CONTINUE=""
while [[ -z "${_CONTINUE}" ]]; do
# get list of 2 sign locale
# ${KEYMAP} | grep -v '...' | grep "^[a-z]"
_KEYMAPS="us English de German es Spanish fr French pt Portuguese OTHER More"
_OTHER_KEYMAPS="be Belarusian bg Bulgarian br Brazil ca Canada cz Czech dk Dansk et Estonian fi Finnish gr Greek hu Hungarian it Italian lt Lithuanian lv Latvian mk Macedonian nl Dutch no Norwegian pl Polish ro Romanian ru Russian sk Slovak sr Serbian sv Swedish uk Ukrainian"
#shellcheck disable=SC2086
2023-07-15 08:32:47 +02:00
if _dialog --no-cancel --title " Keymap Region " --menu "" 12 40 6 ${_KEYMAPS} 2>${_ANSWER}; then
2023-07-13 11:24:32 +02:00
_KEYMAP=$(cat ${_ANSWER})
2023-07-14 16:28:28 +02:00
_CONTINUE="1"
2023-07-13 11:24:32 +02:00
if [[ "${_KEYMAP}" == "OTHER" ]]; then
2023-07-14 16:28:28 +02:00
_CONTINUE=""
2023-07-14 16:20:37 +02:00
#shellcheck disable=SC2086
2023-07-15 08:31:38 +02:00
if _dialog --cancel-label "Back" --title " Keymap Region " --menu "" 17 40 11 ${_OTHER_KEYMAPS} 2>${_ANSWER}; then
2023-07-14 16:20:37 +02:00
_KEYMAP=$(cat ${_ANSWER})
_CONTINUE=1
fi
2023-07-13 11:24:32 +02:00
fi
else
_abort
fi
2023-07-14 16:26:24 +02:00
if [[ -n "${_CONTINUE}" ]]; then
_KEYMAPS=""
for i in $(${_LIST_MAPS} | grep "^${_KEYMAP}" | grep -v '^carpalx' | grep -v 'defkey' | grep -v 'mac' | grep -v 'amiga' | grep -v 'sun' | grep -v 'atari'); do
_KEYMAPS="${_KEYMAPS} ${i} -"
done
2023-07-13 11:24:32 +02:00
#shellcheck disable=SC2086
2023-07-15 08:31:38 +02:00
if _dialog --cancel-label "Back" --title " Keymap Layout " --menu "" 13 40 7 ${_KEYMAPS} 2>${_ANSWER}; then
2023-07-14 16:26:24 +02:00
#shellcheck disable=SC2086
_KEYMAP=$(cat ${_ANSWER})
_CONTINUE=1
else
_CONTINUE=""
fi
2023-07-13 11:24:32 +02:00
fi
2022-11-28 08:27:14 +01:00
done
2008-10-20 22:39:25 +02:00
}
_check
while true; dp
_vconsole_font
_vconsole_keymap
_vconsole && break
done
_cleanup
2011-02-04 18:15:22 +01:00
# vim: set ts=4 sw=4 et: