Changeset View
Changeset View
Standalone View
Standalone View
contrib/openrc/init.d/keymaps.in
- This file was added.
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
#!@SBINDIR@/openrc-run | |||||
# Copyright (c) 2007-2015 The OpenRC Authors. | |||||
# See the Authors file at the top-level directory of this distribution and | |||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS | |||||
# | |||||
# This file is part of OpenRC. It is subject to the license terms in | |||||
# the LICENSE file found in the top-level directory of this | |||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE | |||||
# This file may not be copied, modified, propagated, or distributed | |||||
# except according to the terms contained in the LICENSE file. | |||||
description="Applies a keymap for the consoles." | |||||
depend() | |||||
{ | |||||
need localmount termencoding | |||||
after bootmisc clock | |||||
keyword -docker -lxc -openvz -prefix -systemd-nspawn -uml -vserver -xenu | |||||
} | |||||
start() | |||||
{ | |||||
ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}} | |||||
: ${unicode:=$UNICODE} | |||||
: ${keymap:=$KEYMAP} | |||||
: ${extended_keymaps:=$EXTENDED_KEYMAPS} | |||||
: ${windowkeys:=$SET_WINDOWSKEYS} | |||||
: ${fix_euro:=$FIX_EURO} | |||||
: ${dumpkeys_charset:=${DUMPKEYS_CHARSET}} | |||||
if [ -z "$keymap" ]; then | |||||
eerror "You need to setup keymap in /etc/conf.d/keymaps first" | |||||
return 1 | |||||
fi | |||||
local ttydev=/dev/tty n= | |||||
[ -d /dev/vc ] && ttydev=/dev/vc/ | |||||
# Force linux keycodes for PPC. | |||||
if [ -f /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes ]; then | |||||
echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes | |||||
fi | |||||
local wkeys= kmode="-a" msg="ASCII" | |||||
if yesno $unicode; then | |||||
kmode="-u" | |||||
msg="UTF-8" | |||||
fi | |||||
yesno $windowkeys && wkeys="windowkeys" | |||||
# Set terminal encoding to either ASCII or UNICODE. | |||||
# See utf-8(7) for more information. | |||||
ebegin "Setting keyboard mode [$msg]" | |||||
n=1 | |||||
while [ $n -le $ttyn ]; do | |||||
kbd_mode $kmode -C $ttydev$n | |||||
: $(( n += 1 )) | |||||
done | |||||
eend 0 | |||||
ebegin "Loading key mappings [$keymap]" | |||||
loadkeys -q $wkeys $keymap $extended_keymaps | |||||
eend $? "Error loading key mappings" || return $? | |||||
if yesno $fix_euro; then | |||||
ebegin "Fixing font for euro symbol" | |||||
# Fix some fonts displaying the Euro, #173528. | |||||
echo "altgr keycode 18 = U+20AC" | loadkeys -q - | |||||
eend $? | |||||
fi | |||||
# Save the keymapping for use immediately at boot | |||||
if checkpath -W "$RC_LIBEXECDIR"; then | |||||
mkdir -p "$RC_LIBEXECDIR"/console | |||||
dumpkeys >"$RC_LIBEXECDIR"/console/keymap | |||||
fi | |||||
} |