From 9c1f33c81fb3cb233d59b2dac0f72d089c7f20ab Mon Sep 17 00:00:00 2001 From: bionel Date: Fri, 18 Mar 2016 21:25:01 +0200 Subject: add locale switching --- kogaionlive.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/kogaionlive.sh b/kogaionlive.sh index 7550e4a..aa97526 100755 --- a/kogaionlive.sh +++ b/kogaionlive.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash export local liveuser="kogaion" +CMDLINE=$(cat /proc/cmdline 2> /dev/null) checkroot () { if [[ "$(whoami)" != root ]] ; then @@ -25,8 +26,36 @@ kogaion_live_user_password () { /usr/bin/passwd --delete "$liveuser" > /dev/null 2>&1 } +kogaion_locale_switch () { + local lang_toset= + local keymap_toset= + local k_env_update=false + for boot_param in ${CMDLINE}; do + case ${boot_param} in + rd.locale.LANG=*) + lang_toset="${boot_param/*=}" + ;; + vconsole.keymap=*) + keymap_toset="${boot_param/*=}" + ;; + esac + done + if [[ "${lang_toset}" != "en_US.utf8" ]] ; then + localectl set-locale LANG=${lang_toset} > /dev/null 2>&1 + k_env_update=true + fi + if [[ "${lang_toset}" != "us" ]] ; then + localectl set-keymap ${keymap_toset} > /dev/null 2>&1 + fi + if [ k_env_update ] ; then + /usr/sbin/env-update --no-ldconfig > /dev/null 2>&1 + fi +} + + main () { if checkroot ; then + kogaion_locale_switch kogaion_add_live_user kogaion_live_user_groups kogaion_live_user_password -- cgit v1.2.3