The macintosh keymapping is broken since a long time, and I'm trying to
fix the mess.

what happens with CVS is, xev reports the key "@" with keycode 0x40, but
typing this keycombo in xterm results in garbage:

setxkbmap -model macintosh -layout de -option "" -v -v -v

Setting verbose level to 8
locale is C
Warning! Multiple definitions of keyboard model
         Using command line, ignoring X server
Warning! Multiple definitions of keyboard layout
         Using command line, ignoring X server
Applied rules from xfree86:
model:      macintosh
layout:     de
Trying to build keymap using the following components:
keycodes:   macintosh(macintosh_linuxkeycodes)+aliases(qwertz)
types:      complete
compat:     complete
symbols:    macintosh/us(extended)+macintosh/de
geometry:   macintosh(macintosh)

xev

KeyPress event, serial 21, synthetic YES, window 0x800001,
    root 0x40, subw 0x0, time 1539131, (69,8), root:(683,402),
    state 0x0, keycode 64 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 24, synthetic YES, window 0x800001,
    root 0x40, subw 0x0, time 1540987, (69,8), root:(683,402),
    state 0x0, keycode 46 (keysym 0x6c, l), same_screen YES,
    XLookupString gives 1 bytes: (6c) "l"
    XmbLookupString gives 1 bytes: (6c) "l"
    XFilterEvent returns: False

KeyPress event, serial 24, synthetic YES, window 0x800001,
    root 0x40, subw 0x0, time 1542395, (69,8), root:(683,402),
    state 0x0, keycode 64 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 24, synthetic YES, window 0x800001,
    root 0x40, subw 0x0, time 1543139, (69,8), root:(683,402),
    state 0x8, keycode 46 (keysym 0x40, at), same_screen YES,
    XLookupString gives 1 bytes: (40) "@"
    XmbLookupString gives 1 bytes: (40) "@"
    XFilterEvent returns: False

[EMAIL PROTECTED]:~> cat | hexdump -C
€
�
00000000  e2 82 ac 0a c0 0a                                 |......|
00000006


As you can see, the Euro looks ok, but at sign should be 0x40, but it is
0xc0. How can that happen?


diff -purN /home/olaf/xkb/keycodes/macintosh xkb/keycodes/macintosh
--- /home/olaf/xkb/keycodes/macintosh   2003-09-14 21:46:00.000000000 +0200
+++ xkb/keycodes/macintosh      2003-09-20 22:17:38.000000000 +0200
@@ -29,6 +29,15 @@
 // $XFree86: xc/programs/xkbcomp/keycodes/macintosh,v 1.5 2001/10/03 07:44:22 alanh 
Exp $
 //
 default xkb_keycodes "macintosh" {
+};
+
+xkb_keycodes "macintosh_linuxkeycodes" {
+    include "xfree86(basic)"
+    <RALT> = 64;
+    <LALT> = 115;
+};
+
+xkb_keycodes "macintosh_foobar" {
 
     minimum= 8;
     maximum= 134;
diff -purN /home/olaf/xkb/rules/xfree86 xkb/rules/xfree86
--- /home/olaf/xkb/rules/xfree86        2003-09-14 21:46:06.000000000 +0200
+++ xkb/rules/xfree86   2003-09-20 22:15:05.000000000 +0200
@@ -23,6 +23,7 @@
 
 ! model        =       keycodes
   macintosh_old        =       macintosh
+  macintosh     =       macintosh(macintosh_linuxkeycodes)
   powerpcps2   =       powerpcps2
   pc98         =       xfree98(pc98)
   abnt2                =       xfree86(abnt2)
diff -purN /home/olaf/xkb/symbols/macintosh/de xkb/symbols/macintosh/de
--- /home/olaf/xkb/symbols/macintosh/de 2003-09-14 21:46:04.000000000 +0200
+++ xkb/symbols/macintosh/de    2003-09-20 22:41:56.000000000 +0200
@@ -9,14 +9,13 @@ xkb_symbols "basic" {
     // Describes the differences between a very simple US/ASCII
     // keyboard and a very simple German keybaord
 
+key <RALT> {  [ ISO_Level3_Shift ] };
+
     // Alphanumeric section
     name[Group1]= "German";
-    key <TLDE> {       [ dead_circumflex,      degree  ],
-                       [   notsign                     ]       };
-    key <AE01> {       [         1,    exclam          ],
-                       [ exclamdown,   at              ]       };
-    key <AE02> {       [         2,    quotedbl        ],
-                       [ twosuperior                   ]       };
+    key <TLDE> {       [ dead_circumflex, degree, notsign ]};
+    key <AE01> {       [ 1, exclam, exclamdown, at     ]};
+    key <AE02> {       [ 2, quotedbl, twosuperior      ]};
     key <AE03> {       [         3,    section         ],
                        [ threesuperior,sterling        ]       };
     key <AE04> {       [         4,    dollar          ],
@@ -40,10 +39,8 @@ xkb_symbols "basic" {
 
     key <AD01> {       [         q,    Q               ],
                        [guillemotleft,guillemotright   ]       };
-    key <AD03> {       [         e,    E               ],
-                       [  EuroSign                     ]       };
-    key <AD04> {       [         r,    R               ],
-                       [ registered                    ]       };
+    key <AD03> {       [ e, E, EuroSign                ]       };
+    key <AD04> {       [ r, R, registered              ]       };
     key <AD05> {       [         t,    T               ]       };
     key <AD06> {       [         z,    Z               ]       };
     key <AD07> {       [         u,    U               ],
@@ -63,8 +60,7 @@ xkb_symbols "basic" {
                        [ copyright                     ]       };
     key <AC06> {       [         h,    H               ],
                        [ ordfeminine                   ]       };
-    key <AC09> {       [         l,    L               ],
-                       [       at                      ]       };
+    key <AC09> {       [         l,    L,      at      ]       };
     key <AC10> {       [ odiaeresis,   Odiaeresis      ],
                        [ dead_acute                    ]       };
     key <AC11> {       [ adiaeresis,   Adiaeresis      ],

-- 
USB is for mice, FireWire is for men!

sUse lINUX ag, nÜRNBERG
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to