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 0x81,
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 0x81,
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 0x81,
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 0x81,
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
e2 82 ac 0a c0 0a |..|
0006
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.0 +0200
+++ xkb/keycodes/macintosh 2003-09-20 22:17:38.0 +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/xfree862003-09-14 21:46:06.0 +0200
+++ xkb/rules/xfree86 2003-09-20 22:15:05.0 +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.0 +0200
+++ xkb/symbols/macintosh/de2003-09-20 22:41:56.0 +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