xserver-common: add workaround for xmodmap problems with kdrive 1.4+
authorKoen Kooi <koen@openembedded.org>
Tue, 30 Dec 2008 16:30:50 +0000 (17:30 +0100)
committerKoen Kooi <koen@openembedded.org>
Tue, 30 Dec 2008 16:30:50 +0000 (17:30 +0100)
packages/xserver-common/files/98keymap-fixup [new file with mode: 0755]
packages/xserver-common/xserver-common_1.22.bb

diff --git a/packages/xserver-common/files/98keymap-fixup b/packages/xserver-common/files/98keymap-fixup
new file mode 100755 (executable)
index 0000000..fcc84d9
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+# kdrive 1.4 and up have a heisenbug where it may take multiple tries to apply a modmap
+iter=0
+while [ $(xmodmap -pke | awk '{if ($2 == 36) { if ($4 == "Return") { print "good" } else {print "bad" }}}') = "bad" ] ; do
+       xmodmap - </etc/X11/default.xmodmap
+       let iter=iter+1
+done
+
+echo "modmap applied after $iter additional tries"
index 05b15ae..63a7449 100644 (file)
@@ -2,7 +2,7 @@ DESCRIPTION = "Common X11 scripts and support files"
 LICENSE = "GPL"
 SECTION = "x11"
 RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo"
-PR = "r8"
+PR = "r10"
 
 PACKAGE_ARCH = "all"
 
@@ -13,10 +13,12 @@ SRC_URI_append = " file://setDPI.sh "
 SRC_URI_append_angstrom = " file://kdrive-1.4-fixes.patch;patch=1 \
                             file://xorg-fixes.patch;patch=1 \
                            file://gta-xorg-fixes.patch;patch=1 \
-                            file://default.xmodmap "
+                            file://default.xmodmap \
+                            file://98keymap-fixup "
 
 do_install_append() {
        install -m 0755 "${WORKDIR}/setDPI.sh" "${D}/etc/X11/Xinit.d/50setdpi"
+       install -m 0755 "${WORKDIR}/98keymap-fixup" "${D}/etc/X11/Xinit.d/"
 }
 
 do_install_append_angstrom() {