Hello again !

After some development I made few patches for xfree86 source code to
allow succesfull use of the Tracer TRK 21 MTS multimedia keyboard.
My environment is Athlon x86 PC, linux Debian sarge - xfree86 4.3.0.
The first two patches modify keyboard handling of XFree86 server.
This makes the additional 0xe2 codes sent by the keyboard to be ignored.

trk21mts_patch1.diff:
***** cut here *****
--- xc/programs/Xserver/hw/xfree86/common/atKeynames.h.orig
2004-12-30 10:00:05.000000000 +0100
+++ xc/programs/Xserver/hw/xfree86/common/atKeynames.h  2004-12-30
10:00:34.000000000 +0100
@@ -160,6 +160,7 @@
 
 #define KEY_Prefix0      /* special               0x60  */   96
 #define KEY_Prefix1      /* specail               0x61  */   97
+#define KEY_Prefix2      /* specail               0x62  */   98
 
 /*
  * The 'scancodes' below are generated by the server, because the
MF101/102
***** cut here *****

trk21mts_patch2.diff:
***** cut here *****
--- xc/programs/Xserver/hw/xfree86/common/xf86Events.c.orig
2004-12-30 10:00:18.000000000 +0100
+++ xc/programs/Xserver/hw/xfree86/common/xf86Events.c  2004-12-30
10:00:34.000000000 +0100
@@ -460,6 +460,12 @@
       }
       break;
 #endif
+       /* 
+       * Ignore Key_Prefix2 which is also a suffix to support Tracer TRK
21 MTS
+       * keyboard multimedia keys.
+       */
+    case KEY_Prefix2:
+       return;
     }
   }
 
***** cut here *****


The other four patches modifies keyboard configuration files to add
keysyms and rules definitions.

trk21mts_xkbcomp_patch1.diff:
***** cut here *****
--- xc/programs/xkbcomp/symbols/inet.orig       2003-02-26
20:08:43.000000000 +0100
+++ xc/programs/xkbcomp/symbols/inet    2004-12-30 13:38:34.000000000 +0100
@@ -1673,6 +1673,36 @@
     key <I14>  {       [ XF86Support           ]       };
 };
 
+
+// Tracer
+
+partial alphanumeric_keys
+xkb_symbols "tracer21mts" {
+    name[Group1]= "Tracer TRK 21 MTS";
+
+    key <I6A>  {       [ XF86Back              ]       };
+    key <I69>  {       [ XF86Forward           ]       };
+    key <I68>  {       [ XF86Stop              ]       };
+    key <I67>  {       [ XF86Refresh           ]       };
+    key <I65>  {       [ XF86Search            ]       };
+    key <I66>  {       [ XF86Favorites         ]       };
+    key <I32>  {       [ XF86HomePage          ]       };
+    key <I6C>  {       [ XF86Mail              ]       };
+    key <I6D>  {       [ XF86AudioMedia        ]       };
+    key <I20>  {       [ XF86AudioMute         ]       };
+    key <I10>  {       [ XF86AudioPrev         ]       };
+    key <I22>  {       [ XF86AudioPlay         ]       };
+    key <I24>  {       [ XF86AudioStop         ]       };
+    key <I19>  {       [ XF86AudioNext         ]       };
+    key <I2E>  {       [ XF86AudioLowerVolume  ]       };
+    key <I30>  {       [ XF86AudioRaiseVolume  ]       };
+    key <I6B>  {       [ XF86MyComputer        ]       };
+    key <I21>  {       [ XF86Calculator        ]       };
+    key <I5E>  {       [ XF86PowerDown         ]       };
+    key <I5F>  {       [ XF86Sleep             ]       };
+    key <I63>  {       [ XF86WakeUp            ]       };
+};
+
 // Toshiba
 
 partial alphanumeric_keys
***** cut here *****

trk21mts_xkbcomp_patch2.diff:
***** cut here *****
--- xc/programs/xkbcomp/rules/xfree86.orig      2003-02-20
05:36:09.000000000 +0100
+++ xc/programs/xkbcomp/rules/xfree86   2004-12-30 13:45:45.000000000
+0100
@@ -114,7 +114,7 @@
               qtronix \
               samsung4500 samsung4510 \
               sk1300 sk2500 sk6200 sk7100 \
-              sven symplon toshiba_s3000 trust trustda yahoo
+              sven symplon tracer21mts toshiba_s3000 trust trustda
yahoo
 
 ! model         =       symbols
   $inetkbds     =       +inet(%m)
***** cut here *****

trk21mts_xkbcomp_patch3.diff:
***** cut here *****
--- xc/programs/xkbcomp/rules/xfree86.lst.orig  2003-02-27
06:07:39.000000000 +0100
+++ xc/programs/xkbcomp/rules/xfree86.lst       2004-12-30
13:47:34.000000000 +0100
@@ -93,6 +93,7 @@
   sk7100       SK-7100
   sven         SVEN Ergonomic 2500
   symplon      Symplon PaceBook (tablet PC)
+  tracer21mts  Tracer TRK 21 MTS
   toshiba_s3000        Toshiba Satellite S3000
   trust                Trust Wireless Keyboard Classic
   trustda      Trust Direct Access Keyboard
***** cut here *****

trk21mts_xkbcomp_patch4.diff:
***** cut here *****
--- xc/programs/xkbcomp/rules/xfree86.xml.orig  2003-02-27
06:07:39.000000000 +0100
+++ xc/programs/xkbcomp/rules/xfree86.xml       2004-12-30
13:48:50.000000000 +0100
@@ -537,6 +537,12 @@
     </model>
     <model>
       <configItem>
+        <name>tracer21mts</name>
+        <description>Tracer TRK 21 MTS </description>
+      </configItem>
+    </model>
+    <model>
+      <configItem>
         <name>toshiba_s3000</name>
         <description>Toshiba Satellite S3000</description>
       </configItem>
***** cut here *****

I generated these diff files and tested it with xfree86 4.3.0 but I
was also able to apply it succesfully to xfree86 4.4.0. I didn't
test it with the 4.4.0 version however.
After applying these patches and installing modified code it is
possible to easly configure the keyboard, assign some functions to
its multimedia keys (for example in Gnome) and enjoy using it.
I don't know if these modifiacations are proper for different models
of tracer keyboards or maybe other keyboards ? I own only TRK 21 MTS
and do not have opportunity to test it with other keyboards. Any
comments, suggestions, or testing result information welcome.
It seems also that Debian sarge have slightly modified versions of
symbols/inet and rules/xfree86*. The above patches are for generic
source files from www.xfree86.org.

Regards,
Radek.
_______________________________________________
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel

Reply via email to