TuXxX Blog
Just another WordPress weblog
Just another WordPress weblog
The following patch includes the changes I made to the Xorg XKB files adds a keyboard model for the MS Digital Media Keyboard that maps some of the multimedia keys:
diff -p -up xkb/rules/base.xml.orig xkb/rules/base.xml
--- xkb/rules/base.xml.orig 2008-05-01 05:12:36.000000000 +0930
+++ xkb/rules/base.xml 2008-11-26 21:06:35.000000000 +1030
@@ -751,6 +751,13 @@
</model>
<model>
<configItem>
+ <name>microsoftdmedia</name>
+ <description>Microsoft Digital Media Keyboard</description>
+ <vendor>Microsoft Inc.</vendor>
+ </configItem>
+ </model>
+ <model>
+ <configItem>
<name>oretec</name>
<description>Ortek MCK-800 MM/Internet keyboard</description>
<vendor>Ortek</vendor>
diff -p -up xkb/rules/base.lst.orig xkb/rules/base.lst
--- xkb/rules/base.lst.orig 2008-05-01 05:12:36.000000000 +0930
+++ xkb/rules/base.lst 2008-11-26 21:06:35.000000000 +1030
@@ -106,6 +106,7 @@
microsoftoffice Microsoft Office Keyboard
microsoftmult Microsoft Wireless Multimedia Keyboard 1.0A
microsoftelite Microsoft Natural Keyboard Elite
+ microsoftdmedia Microsoft Digital Media Keyboard
oretec Ortek MCK-800 MM/Internet keyboard
propeller Propeller Voyager (KTEZ-1000)
qtronix QTronix Scorpius 98N+
diff -p -up xkb/rules/base.orig xkb/rules/base
--- xkb/rules/base.orig 2008-05-01 05:12:36.000000000 +0930
+++ xkb/rules/base 2008-11-26 21:06:34.000000000 +1030
@@ -60,6 +60,7 @@
logidinovo logidinovoedge
microsoftinet microsoftpro microsoftprousb microsoftprooem microsoftprose
microsoftoffice microsoftmult
+ microsoftdmedia
mx1998 mx2500 mx2750
oretec
presario propeller
diff -p -up xkb/symbols/inet.orig xkb/symbols/inet
--- xkb/symbols/inet.orig 2008-05-01 05:12:36.000000000 +0930
+++ xkb/symbols/inet 2008-12-14 01:11:46.000000000 +1030
@@ -1768,6 +1768,41 @@ xkb_symbols "microsoftmult" {
// My Computer Section — Left Side
};
+// Microsoft Digital Media Keyboard 1.0A
+partial alphanumeric_keys
+xkb_symbols "microsoftdmedia" {
+ include "inet(media_common)"
+ // No keycode: Increase Zoom
+ // No keycode: Decrease Zoom
+ key <I20> { [ XF86AudioMute ] };
+ key <I2E> { [ XF86AudioLowerVolume ] };
+ key <I30> { [ XF86AudioRaiseVolume ] };
+ key <I66> { [ XF86Favorites ] };
+ // No keycode: Favorite1
+ // No keycode: Favorite2
+ // No keycode: Favorite3
+ // No keycode: Favorite4
+ // No keycode: Favorite5
+ key <I6C> { [ XF86Mail ] };
+ key <I32> { [ XF86HomePage ] };
+ // No keycode: Messenger
+ key <I21> { [ XF86Calculator ] };
+ // No keycode: Log Off
+ // Skipped: Sleep
+ key <I75> { [ Help ] };
+ key <I07> { [ Undo ] };
+ key <I0A> { [ Redo ] };
+ key <I09> { [ XF86New ] };
+ key <I3F> { [ XF86Open ] };
+ key <I2F> { [ XF86Close ] };
+ key <I64> { [ XF86Reply ] };
+ key <I0E> { [ XF86MailForward ] };
+ key <I5A> { [ XF86Send ] };
+ // No keycode: Spell
+ key <I55> { [ XF86Save ] };
+ key <I39> { [ Print ] };
+};
+
// Oretec
// Oretec MCK-800 MM/Internet keyboard
diff -p -up xkb/symbols.dir.orig xkb/symbols.dir
+-- xkb/symbols.dir.orig 2008-05-01 05:12:36.000000000 +0930
+++ xkb/symbols.dir 2008-11-26 21:05:46.000000000 +1030
@@ -622,6 +622,7 @@ h-p----- a------- inet(logitech_set3)
--p----- a------- inet(microsoftprose)
--p----- a------- inet(microsoftoffice)
--p----- a------- inet(microsoftmult)
+--p----- a------- inet(microsoftdmedia)
--p----- a------- inet(oretec)
--p----- a------- inet(propeller)
--p----- a------- inet(qtronix)
Use xev to discover and document the keycodes that unmapped keys produce. Keycodes greater than 128 translate to the I hex codes in xkb/symbols/inet by subtracting 128.