summaryrefslogtreecommitdiff
path: root/extras/keymap/keyboard-force-release.sh
diff options
context:
space:
mode:
authorJohannes Stezenbach <js@sig21.net>2009-12-13 23:54:05 +0100
committerMartin Pitt <martin.pitt@ubuntu.com>2009-12-14 19:19:35 +0100
commit8350d0b9ec1f1b47e84549cb1cdd68127ed0e89b (patch)
tree8ca8434da02e2776ecd925de7958eaa36b3c7acd /extras/keymap/keyboard-force-release.sh
parent92b8cea053c41315b57439400de9821928445fb3 (diff)
keymap: handle atkbd force_release quirk
Some laptop keyboards don't generate release events for some hotkeys. Since linux-2.6.32 the list of scancodes for which to enable the force_release quirk can be set via sysfs. Apply this to Samsung N130. Signed-off-by: Johannes Stezenbach <js@sig21.net> Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
Diffstat (limited to 'extras/keymap/keyboard-force-release.sh')
-rw-r--r--extras/keymap/keyboard-force-release.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/extras/keymap/keyboard-force-release.sh b/extras/keymap/keyboard-force-release.sh
new file mode 100644
index 0000000000..b157ac310d
--- /dev/null
+++ b/extras/keymap/keyboard-force-release.sh
@@ -0,0 +1,22 @@
+#!/bin/sh -e
+# read list of scancodes, convert hex to decimal and
+# append to the atkbd force_release sysfs attribute
+# $1 sysfs devpath for serioX
+# $2 file with scancode list (hex or dec)
+
+case "$2" in
+ /*) scf="$2" ;;
+ *) scf="/lib/udev/keymaps/force-release/$2" ;;
+esac
+
+read attr <"/sys/$1/force_release"
+while read scancode dummy; do
+ case "$scancode" in
+ \#*) ;;
+ *)
+ scancode=$(($scancode))
+ attr="$attr${attr:+,}$scancode"
+ ;;
+ esac
+done <"$scf"
+echo "$attr" >"/sys/$1/force_release"