summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keymap/95-keymap.rules13
-rw-r--r--keymap/keymaps/module-ibm16
-rw-r--r--keymap/keymaps/module-lenovo16
3 files changed, 45 insertions, 0 deletions
diff --git a/keymap/95-keymap.rules b/keymap/95-keymap.rules
index 730fb39..8e4a85f 100644
--- a/keymap/95-keymap.rules
+++ b/keymap/95-keymap.rules
@@ -1,5 +1,18 @@
ACTION!="add", GOTO="keyboard_end"
SUBSYSTEM!="input", GOTO="keyboard_end"
+
+#
+# The following are exposed as separate input devices with low key codes, thus
+# we need to check their input device product name
+#
+
+ATTR{[dmi/id]sys_vendor}=="IBM*", ATTR{name}=="ThinkPad Extra Buttons", RUN+="keymap $name module-ibm"
+ATTR{[dmi/id]sys_vendor}=="LENOVO*", ATTR{name}=="ThinkPad Extra Buttons", RUN+="keymap $name module-lenovo"
+
+#
+# The following rules belong to standard i8042 AT keyboard with high key codes.
+#
+
DRIVERS=="atkbd", GOTO="keyboard_vendorcheck"
GOTO="keyboard_end"
diff --git a/keymap/keymaps/module-ibm b/keymap/keymaps/module-ibm
new file mode 100644
index 0000000..c330f01
--- /dev/null
+++ b/keymap/keymaps/module-ibm
@@ -0,0 +1,16 @@
+0x01 battery # Fn+F2
+0x02 screenlock # Fn+F3
+0x03 sleep # Fn+F4
+0x04 radio # Fn+F5
+0x06 switchvideomode # Fn+F7
+0x07 zoom # Fn+F8 screen expand
+0x08 f24 # Fn+F9 undock
+0x0B suspend # Fn+F12
+0x0F brightnessup # Fn+Home
+0x10 brightnessdown # Fn+End
+0x11 kbdillumtoggle # Fn+PgUp - ThinkLight
+0x13 zoom # Fn+Space
+0x14 volumeup
+0x15 volumedown
+0x16 mute
+0x17 prog1 # ThinkPad/ThinkVantage button (high keycode: "vendor")
diff --git a/keymap/keymaps/module-lenovo b/keymap/keymaps/module-lenovo
new file mode 100644
index 0000000..53f142b
--- /dev/null
+++ b/keymap/keymaps/module-lenovo
@@ -0,0 +1,16 @@
+0x1 screenlock # Fn+F2
+0x2 battery # Fn+F3
+0x3 sleep # Fn+F4
+0x4 radio # Fn+F5
+0x6 switchvideomode # Fn+F7
+0x7 f22 # Fn+F8 touchpadtoggle
+0x8 f24 # Fn+F9 undock
+0xB suspend # Fn+F12
+0xF brightnessup # Fn+Home
+0x10 brightnessdown # Fn+End
+0x11 kbdillumtoggle # Fn+PgUp - ThinkLight
+0x13 zoom # Fn+Space
+0x14 volumeup
+0x15 volumedown
+0x16 mute
+0x17 prog1 # ThinkPad/ThinkVantage button (high keycode: "vendor")