aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpackages/xserver-common/files/98keymap-fixup10
-rw-r--r--packages/xserver-common/xserver-common_1.22.bb6
2 files changed, 14 insertions, 2 deletions
diff --git a/packages/xserver-common/files/98keymap-fixup b/packages/xserver-common/files/98keymap-fixup
new file mode 100755
index 0000000000..fcc84d9cab
--- /dev/null
+++ b/packages/xserver-common/files/98keymap-fixup
@@ -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"
diff --git a/packages/xserver-common/xserver-common_1.22.bb b/packages/xserver-common/xserver-common_1.22.bb
index 05b15ae564..63a74496e7 100644
--- a/packages/xserver-common/xserver-common_1.22.bb
+++ b/packages/xserver-common/xserver-common_1.22.bb
@@ -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() {