[ltp] logitech cordless desktop optical, special keys not working

Matthias Himber linux-thinkpad@linux-thinkpad.org
Sat, 17 Apr 2004 10:42:29 +0200


Well, there has been some demand, so here is the stuff. I cannot guarantee 
this works on any System other than mine (SuSE Linux, using X.org X11R6.7).

First, find the xkb base directory. On my SuSE System its /etc/X11/xkb, but on 
your System it might be different. Here is what it looks like:

matthias@denkbrett:~> ls -l /etc/X11/xkb/
insgesamt 112
drwxr-xr-x    2 root     root          472 2004-02-25 20:21 compat
-r--r--r--    1 root     root          689 2004-02-12 19:15 compat.dir
lrwxrwxrwx    1 root     root           12 2004-02-25 20:21 compiled 
-> /var/lib/xkb
drwxr-xr-x    5 root     root          584 2004-02-25 20:21 geometry
-r--r--r--    1 root     root         2601 2004-02-12 19:15 geometry.dir
drwxr-xr-x    4 root     root          424 2004-02-25 20:21 keycodes
-r--r--r--    1 root     root         2660 2004-02-12 19:15 keycodes.dir
drwxr-xr-x    5 root     root          296 2004-02-25 20:21 keymap
-r--r--r--    1 root     root        10552 2004-02-12 19:15 keymap.dir
-r--r--r--    1 root     root         1048 2004-02-12 19:15 README
-r--r--r--    1 root     root         7618 2004-02-12 19:15 README.config
-r--r--r--    1 root     root        23440 2004-02-12 19:15 README.enhancing
drwxr-xr-x    2 root     root          376 2004-04-03 12:20 rules
drwxr-xr-x    2 root     root          144 2004-02-25 20:21 semantics
drwxr-xr-x   12 root     root         3048 2004-04-03 11:55 symbols
-r--r--r--    1 root     root        38346 2004-02-12 19:15 symbols.dir
drwxr-xr-x    2 root     root          296 2004-02-25 20:21 types
-r--r--r--    1 root     root          500 2004-02-12 19:15 types.dir
-rw-r--r--    1 root     root          108 2004-04-03 11:59 X0-config.keyboard
lrwxrwxrwx    1 root     root           22 2004-02-25 20:21 xkbcomp 
-> /usr/X11R6/bin/xkbcomp

Now, edit the file symbols/inet, adding the following:

partial alphanumeric_keys
xkb_symbols "ltcdmx" {
    name[Group1]= "Logitech Cordless Desktop MX";

    // Left side
    key <I16>   {       [ XF86WheelButton       ]       };
    key <I6A>   {       [ XF86Back              ]       };
    key <I69>   {       [ XF86Go                ]       };

    // Top left
    key <I5F>   {       [ XF86Standby           ]       };
    key <I6C>   {       [ XF86Mail              ]       };
    key <I11>   {       [ XF86Messenger         ]       };
    key <I12>   {       [ XF86WebCam            ]       };

    // Top center
    key <I10>   {       [ XF86AudioPrev         ]       };
    key <I19>   {       [ XF86AudioNext         ]       };
    key <I6D>   {       [ XF86AudioMedia        ]       };
    key <I2E>   {       [ XF86AudioLowerVolume  ]       };
    key <I30>   {       [ XF86AudioRaiseVolume  ]       };
    key <I20>   {       [ XF86AudioMute         ]       };
    key <I22>   {       [ XF86AudioPlay, XF86AudioPause ] };
    key <I24>   {       [ XF86AudioStop         ]       };

    // Top right
    key <I13>   {       [ XF86iTouch            ]       };
    key <I65>   {       [ XF86Search            ]       };
    key <I32>   {       [ XF86HomePage          ]       };
    key <I14>   {       [ XF86Shop              ]       };
    key <I66>   {       [ XF86Favorites         ]       };

    // Extended Fn keys
    key <I3B>   {       [ XF86New               ]       };      // F1
    key <I3C>   {       [ XF86Reply             ]       };      // F2
    key <FK13>  {       [ XF86MailForward       ]       };      // F3
    key <FK14>  {       [ XF86Send              ]       };      // F4
    key <FK15>  {       [ Undo                  ]       };      // F5
    key <FK16>  {       [ Redo                  ]       };      // F6
    key <FK17>  {       [ Print                 ]       };      // F7
    key <I42>   {       [ XF86Save              ]       };      // F8
    key <I43>   {       [ XF86MyComputer        ]       };      // F9
    key <I44>   {       [ XF86Documents         ]       };      // F10
    key <I57>   {       [ XF86Pictures          ]       };      // F11
    key <I58>   {       [ XF86Music             ]       };      // F12
};

Now, in the file rules/xfree86, look for the long list of Internet Keyboards, 
it looks like this:

! $inetkbds = airkey acpi scorpius [...more...] trust trustda yahoo

Add "ltcdmx" in there somewhere.

Now, if you want to use some graphical configuration Tool to tell XFree to 
load the keymap, you will have to edit rules/xfree86.lst and 
rules/xfree86.xml, but these files should be self-documenting. To do it 
manually, open the XF86Config in your favorite editor and in the appropiate 
InputDevice section for your keyboard put the line

Option "XkbModel" "ltcdmx"

remove any existing 'Option "XkbModel"' line, of course.

If this, please tell me as I would then try to submit it to X.org.

Have a lot of fun,
	Matthias