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) | |
| download | openrc-1d4818364641c84d0e53fda90a356772299dee8e.tar.xz | |
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 | 
