diff options
author | Roy Marples <roy@marples.name> | 2009-04-26 11:19:22 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2009-04-26 11:19:22 +0000 |
commit | 1d4818364641c84d0e53fda90a356772299dee8e (patch) | |
tree | 06cfac07ee56bf4c20a0b9688846ae608faf6a7f /sh/init-early.sh.Linux.in | |
parent | 0feddbd815b16a23240f45dbdc38b36e3f1559e0 (diff) |
Try and set a keymap as early as possible, #169
Diffstat (limited to 'sh/init-early.sh.Linux.in')
-rw-r--r-- | sh/init-early.sh.Linux.in | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/sh/init-early.sh.Linux.in b/sh/init-early.sh.Linux.in index d6cb007d..3e29fb85 100644 --- a/sh/init-early.sh.Linux.in +++ b/sh/init-early.sh.Linux.in @@ -1,18 +1,34 @@ #!@SHELL@ -# Copyright 2007-2008 Roy Marples <roy@marples.name> +# Copyright 2007-2009 Roy Marples <roy@marples.name> # All rights reserved. Released under the 2-clause BSD license. -# Try and set a font and as early as we can -if [ -e /etc/runlevels/"${RC_DEFAULTLEVEL}"/consolefont \ - -o -e /etc/runlevels/"${RC_BOOTLEVEL}"/consolefont ]; then +: ${CONSOLE:=/dev/console} + +if [ -e "$RC_LIBDIR"/console/unicode ]; then + termencoding="%G" + kmode="-u" +else termencoding="(K" - [ -e "${RC_LIBDIR}"/console/unicode ] && termencoding="%G" - CONSOLE="${CONSOLE:-/dev/console}" - printf "\033%s" "${termencoding}" >"${CONSOLE}" 2>/dev/null - if [ -r "${RC_LIBDIR}"/console/font -a -x /bin/setfont ]; then - font="$(cat "${RC_LIBDIR}"/console/font)" - [ -c "${CONSOLE}" ] && cons="-C ${CONSOLE}" - setfont ${cons} "${RC_LIBDIR}"/console/"${font}" 2>/dev/null + kmode="-a" +fi + +# Try and set a font and as early as we can +if [ -e /etc/runlevels/"$RC_DEFAULTLEVEL"/consolefont \ + -o -e /etc/runlevels/"$RC_BOOTLEVEL"/consolefont ]; then + printf "\033%s" "$termencoding" >"$CONSOLE" 2>/dev/null + if [ -r "$RC_LIBDIR"/console/font -a -x /bin/setfont ]; then + font="$(cat "$RC_LIBDIR"/console/font)" + [ -c "$CONSOLE" ] && cons="-C $CONSOLE" + setfont $cons "$RC_LIBDIR"/console/"$font" 2>/dev/null + fi +fi + +# Try and set a keyboard map as early as possible +if [ -e /etc/runlevels/"$RC_DEFAULTLEVEL"/keymaps \ + -o -e /etc/runlevels/"$RC_BOOTLEVEL"/keymaps ]; then + kbd_mode $kmode -C "$CONSOLE" 2>/dev/null + if [ -r "$RC_LIBDIR"/console/keymap ]; then + loadkeys "$RC_LIBDIR"/console/keymap 2>/dev/null fi fi |