| Summary: |
xkb: Alternative layouts don't work due to groups "invented" by the server |
| Product: |
xorg
|
Reporter: |
Matthias B. <haferfrost> |
| Component: |
Server/Input/Core | Assignee: |
Peter Hutterer <peter.hutterer> |
| Status: |
RESOLVED
FIXED
|
QA Contact: |
Xorg Project Team <xorg-team> |
| Severity: |
normal
|
|
|
| Priority: |
medium
|
CC: |
svu
|
| Version: |
unspecified | |
|
| Hardware: |
x86 (IA32) | |
|
| OS: |
Linux (All) | |
|
| Whiteboard: |
|
|
i915 platform:
|
|
i915 features:
|
|
| Attachments: |
|
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
The following configuration doesn't work with xorg-1.4.0.90: Section "InputDevice" Identifier "Keyboard" Driver "kbd" Option "AutoRepeat" "250 30" Option "XkbModel" "pc105" Option "XkbLayout" "de,de(nodeadkeys)" Option "XkbOptions" "grp:caps_toggle" EndSection Symptons: When you press the "a" key, you get an "a" when switched to one group, but an "æ" when switched to the other group. Most other keys are broken, too. The reason is that for all keys where the 2 layouts have identical mappings and which therefore should contain only 1 group (xkbcomp optimizes away identical groups) the server "invents" a 2nd group that contains the last 2 symbols from group1. Example: Here is the symbol mapping of the "a" key as reported by xkbcomp :0 - after starting the server with the above configuration. key <AC01> { type[group1]= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ a, A, ae, AE ], symbols[Group2]= [ ae, AE ] }; And here is how it should be key <AC01> { type= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ a, A, ae, AE ] }; And this is indeed what you get when you issue the command setxkbmap -layout "de,de(nodeadkeys)" after the server has started. Why is this different? The 2 should be the same, shouldn't they? Unfortunately, due to bug #14359, putting the setxkbmap command into .xinitrc can not be used as a workaround.