#!/sbin/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() { provide keymaps need localmount termencoding after bootmisc 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/${0##*/} 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 }