aboutsummaryrefslogtreecommitdiffstats
path: root/main/kbd/loadkeys.initd
diff options
context:
space:
mode:
authorSören Tempel <soeren+git@soeren-tempel.net>2018-02-19 16:29:37 +0100
committerWilliam Pitcock <nenolod@dereferenced.org>2018-02-28 17:52:17 +0000
commit1f0af7530595329a7ca8b94d3ea35987fd17db62 (patch)
tree8843ac3f74cf33de7a08683f2d08123ebbef1968 /main/kbd/loadkeys.initd
parent2d87b9a12d5cea02961fbea755a0bcd24e7c2884 (diff)
downloadaports-1f0af7530595329a7ca8b94d3ea35987fd17db62.tar.bz2
aports-1f0af7530595329a7ca8b94d3ea35987fd17db62.tar.xz
main/kbd: add -openrc subpackage
OpenRC run scripts have been copied from the OpenRC source and contain only minimal modifications.
Diffstat (limited to 'main/kbd/loadkeys.initd')
-rw-r--r--main/kbd/loadkeys.initd72
1 files changed, 72 insertions, 0 deletions
diff --git a/main/kbd/loadkeys.initd b/main/kbd/loadkeys.initd
new file mode 100644
index 0000000000..6686bf0e52
--- /dev/null
+++ b/main/kbd/loadkeys.initd
@@ -0,0 +1,72 @@
+#!/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
+}