summaryrefslogtreecommitdiff
path: root/extras/keymap/95-keyboard-force-release.rules
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/95-keyboard-force-release.rules
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/95-keyboard-force-release.rules')
-rw-r--r--extras/keymap/95-keyboard-force-release.rules24
1 files changed, 24 insertions, 0 deletions
diff --git a/extras/keymap/95-keyboard-force-release.rules b/extras/keymap/95-keyboard-force-release.rules
new file mode 100644
index 0000000000..4d0a877044
--- /dev/null
+++ b/extras/keymap/95-keyboard-force-release.rules
@@ -0,0 +1,24 @@
+# Set model specific atkbd force_release quirk
+#
+# Several laptops have hotkeys which don't generate release events,
+# which can cause problems with software key repeat.
+# The atkbd driver has a quirk handler for generating synthetic
+# release events, which can be configured via sysfs since 2.6.32.
+# Simply add a file with a list of scancodes for your laptop model
+# in /lib/udev/keymaps, and add a rule here.
+# If the hotkeys also need a keymap assignment you can copy the
+# scancodes from the keymap file, otherwise you can run
+# /lib/udev/keymap -i /dev/input/eventX
+# on a Linux vt to find out.
+
+ACTION!="add|change", GOTO="force_release_end"
+SUBSYSTEM!="serio", GOTO="force_release_end"
+KERNEL!="serio*", GOTO="force_release_end"
+DRIVER!="atkbd", GOTO="force_release_end"
+
+ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}"
+
+
+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*N130*", RUN+="keyboard-force-release.sh $devpath samsung-other"
+
+LABEL="force_release_end"