Try and set a keymap as early as possible, #169

This commit is contained in:
Roy Marples 2009-04-26 11:19:22 +00:00
parent 0feddbd815
commit 1d48183646
2 changed files with 33 additions and 11 deletions

View File

@ -64,4 +64,10 @@ start()
n=$((${n} + 1)) n=$((${n} + 1))
done done
eend 0 eend 0
# Save the keymapping for use immediately at boot
if [ -w "${RC_LIBDIR}" ]; then
mkdir -p "${RC_LIBDIR}"/console
dumpkeys >"${RC_LIBDIR}"/console/keymap
fi
} }

View File

@ -1,18 +1,34 @@
#!@SHELL@ #!@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. # All rights reserved. Released under the 2-clause BSD license.
# Try and set a font and as early as we can : ${CONSOLE:=/dev/console}
if [ -e /etc/runlevels/"${RC_DEFAULTLEVEL}"/consolefont \
-o -e /etc/runlevels/"${RC_BOOTLEVEL}"/consolefont ]; then if [ -e "$RC_LIBDIR"/console/unicode ]; then
termencoding="%G"
kmode="-u"
else
termencoding="(K" termencoding="(K"
[ -e "${RC_LIBDIR}"/console/unicode ] && termencoding="%G" kmode="-a"
CONSOLE="${CONSOLE:-/dev/console}" fi
printf "\033%s" "${termencoding}" >"${CONSOLE}" 2>/dev/null
if [ -r "${RC_LIBDIR}"/console/font -a -x /bin/setfont ]; then # Try and set a font and as early as we can
font="$(cat "${RC_LIBDIR}"/console/font)" if [ -e /etc/runlevels/"$RC_DEFAULTLEVEL"/consolefont \
[ -c "${CONSOLE}" ] && cons="-C ${CONSOLE}" -o -e /etc/runlevels/"$RC_BOOTLEVEL"/consolefont ]; then
setfont ${cons} "${RC_LIBDIR}"/console/"${font}" 2>/dev/null 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
fi fi