Package: xkb-data Version: 1.6-1 Hi!
Keyboard configuration programs use /usr/share/X11/xkb/rules/*.xml file in order to find the possible models, layouts, variants. Unfortunately some Macintosh-related combination are not supported. For example the following logical choice is not supported: keyboard model 'macintosh' ("Macintosh"), layout 'de' ("Germany") and variant 'mac_nodeadkeys' ("Germany - Macintosh, eliminate dead keys"). The reason for this is that when the user selects model 'macintosh' and layout 'de' the file /usr/share/X11/xkb/symbols/macintosh_vndr/de is used instead of /usr/share/X11/xkb/symbols/de and there is no mac_nodeadkeys there. As a result the keyboard is leaved in a bad state. I suppose that one possible fix for this problem would be to ignore the files in macintosh_vndr. The standard files in /usr/share/X11/xkb/symbols describe all Mac-layouts so there is no need to use the files in macintosh_vndr. You can find attached a patch that shows how this can be fixed but I suppose this will require some discussion with the upstream before applying it. Anton Zinoviev
diff -Naur rules/base rules.new/base --- rules/base 2009-07-06 21:05:17.790404174 +0300 +++ rules.new/base 2009-07-06 21:06:26.588583187 +0300 @@ -31,8 +31,6 @@ ! $maclaptop = ibook powerbook macbook78 macbook79 ! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 -! $macvendorlayouts = ch de dk es fi fr gb is it latam nl no pt se us - ! $azerty = be fr ! $qwertz = al cz de hr hu ro si sk @@ -303,11 +301,9 @@ pc98 nec_vndr/jp = nec_vndr/jp(pc98) macintosh_old us = macintosh_vndr/us(oldmac) macintosh_old en_US = macintosh_vndr/us(oldmac) - macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) $macs en_US = pc+macintosh_vndr/us(extended) - $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) olpc $olpclayouts = olpc+%l%(m) olpc * = olpc+%l%(v) $thinkpads br = pc+br(thinkpad) @@ -396,9 +392,7 @@ sun4 * = latin+sun_vndr/us(sun4)+%l[1]%(v[1]) sun5 * = latin+sun_vndr/us(sun5)+%l[1]%(v[1]) macintosh_old us = macintosh_vndr/us(oldmac) - macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) - $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) $thinkpads br = pc+%l[1](thinkpad) * * = pc+%l[1]%(v[1]) diff -Naur rules/evdev rules.new/evdev --- rules/evdev 2009-07-06 21:05:17.798900672 +0300 +++ rules.new/evdev 2009-07-06 21:06:42.248594585 +0300 @@ -31,8 +31,6 @@ ! $maclaptop = ibook powerbook macbook78 macbook79 ! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 -! $macvendorlayouts = ch de dk es fi fr gb is it latam nl no pt se us - ! $azerty = be fr ! $qwertz = al cz de hr hu ro si sk @@ -292,11 +290,9 @@ pc98 nec_vndr/jp = nec_vndr/jp(pc98) macintosh_old us = macintosh_vndr/us(oldmac) macintosh_old en_US = macintosh_vndr/us(oldmac) - macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) $macs en_US = pc+macintosh_vndr/us(extended) - $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) olpc $olpclayouts = olpc+%l%(m) olpc * = olpc+%l%(v) $thinkpads br = pc+br(thinkpad) @@ -385,9 +381,7 @@ sun4 * = latin+sun_vndr/us(sun4)+%l[1]%(v[1]) sun5 * = latin+sun_vndr/us(sun5)+%l[1]%(v[1]) macintosh_old us = macintosh_vndr/us(oldmac) - macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) - $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) $thinkpads br = pc+%l[1](thinkpad) * * = pc+%l[1]%(v[1])