diff --git a/packages/x11/app/setxkbmap/install b/packages/x11/app/setxkbmap/install index 6a5aaf3171..16941ff820 100755 --- a/packages/x11/app/setxkbmap/install +++ b/packages/x11/app/setxkbmap/install @@ -25,3 +25,5 @@ mkdir -p $INSTALL/usr/bin cp $PKG_BUILD/$1 $INSTALL/usr/bin +mkdir -p $INSTALL/lib/udev + cp $PKG_DIR/scripts/xkb-setup $INSTALL/lib/udev diff --git a/packages/x11/app/setxkbmap/init.d/72_keyboard b/packages/x11/app/setxkbmap/scripts/xkb-setup old mode 100644 new mode 100755 similarity index 67% rename from packages/x11/app/setxkbmap/init.d/72_keyboard rename to packages/x11/app/setxkbmap/scripts/xkb-setup index 32478732e2..a2498b336a --- a/packages/x11/app/setxkbmap/init.d/72_keyboard +++ b/packages/x11/app/setxkbmap/scripts/xkb-setup @@ -1,3 +1,5 @@ +#!/bin/sh + ################################################################################ # This file is part of OpenELEC - http://www.openelec.tv # Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) @@ -18,28 +20,21 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -# setup keyboard layout -# -# runlevels: openelec +. /etc/profile +. /var/config/settings.conf -( - if [ -f /var/config/settings.conf ]; then - . /var/config/settings.conf +if [ -z $X11_KEYMAP ]; then + X11_KEYMAP="us" +fi - progress "setup keyboard layout" +if [ ! "$X11_KEYMAP2" == "-none-" ]; then + XKBLAYOUT="$X11_KEYMAP,$X11_KEYMAP2" + XKBOPTIONS="grp:alt_shift_toggle" +else + XKBLAYOUT="$X11_KEYMAP" +fi - if [ -z $X11_KEYMAP ]; then - X11_KEYMAP="us" - fi - - # waiting for Xorg to start - wait_for_xorg - - # setup keymap - if [ -z $X11_KEYMAP2 ]; then - setxkbmap -display $DISPLAY $X11_KEYMAP; - else - setxkbmap -display $DISPLAY -layout "$X11_KEYMAP,$X11_KEYMAP2" -option "grp:alt_shift_toggle"; - fi - fi -)& +echo "XKBMODEL=\"pc105\"" +echo "XKBVARIANT=\"\"" +echo "XKBLAYOUT=\"$XKBLAYOUT\"" +echo "XKBOPTIONS=\"$XKBOPTIONS\"" diff --git a/packages/x11/app/setxkbmap/udev.d/98-xorg-xkb.rules b/packages/x11/app/setxkbmap/udev.d/98-xorg-xkb.rules new file mode 100644 index 0000000000..a99b7f3c1e --- /dev/null +++ b/packages/x11/app/setxkbmap/udev.d/98-xorg-xkb.rules @@ -0,0 +1,8 @@ +ACTION!="add|change", GOTO="xorg_xkb_end" +SUBSYSTEM!="input", GOTO="xorg_xkb_end" +KERNEL!="event*", GOTO="xorg_xkb_end" + +ENV{ID_INPUT_KEY}=="?*", IMPORT{program}="xkb-setup" + +LABEL="xorg_xkb_end" +