From 1d4818364641c84d0e53fda90a356772299dee8e Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Sun, 26 Apr 2009 11:19:22 +0000 Subject: Try and set a keymap as early as possible, #169 --- sh/init-early.sh.Linux.in | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) (limited to 'sh') 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 +# Copyright 2007-2009 Roy Marples # 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 -- cgit v1.2.3