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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
<small><strong>diff -p -up xkb/rules/base.xml.orig xkb/rules/base.xml</strong> --- 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> <strong>diff -p -up xkb/rules/base.lst.orig xkb/rules/base.lst</strong> --- 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+ <strong>diff -p -up xkb/rules/base.orig xkb/rules/base</strong> --- 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 <strong>diff -p -up xkb/symbols/inet.orig xkb/symbols/inet</strong> --- 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 <strong>diff -p -up xkb/symbols.dir.orig xkb/symbols.dir</strong> +-- 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)</small> |
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.