Bug 2874

Summary: symbols/pc/us overrides RWIN, LWIN, MENU when 'us' layout is secondary group.
Product: xorg Reporter: Jim Ramsay <i.am>
Component: Input/KeyboardAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high    
Version: 6.8.2   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Jim Ramsay 2005-03-31 12:08:30 UTC
To test these options, I used the following commandline:

  setxkbmap -option -option grp:rwin_toggle grp_led:scroll dvorak,us

In the cases of grp:rwin_toggle, grp:lwin_toggle, and grp:menu_toggle, I was
able to switch from dvorak to us, but not us to dvorak.

I also tried grp:toggle and grp:ctrl_shift_toggle, and these both seemed to work
properly, switching from dvorak to us and also us to dvorak.

The interesting thing is that switching the group order fixed the problem:

  setxkbmap -option -option grp:rwin_toggle grp_led:scroll us,dvorak

Worked properly, able to switch from us to dvorak and back again.

So perhaps this is some problem with the dvorak layout?
Comment 1 Jim Ramsay 2005-04-07 10:58:22 UTC
After further investigation, I have found that it is actually a problem with the
us symbols in symbols/pc/us:

If you set 'us' as the second group, it overrides any alternate group settings
(or probably others) because of the following:

xkb_symbols "basic" {

    name[Group1]= "US/ASCII";

    include "pc/pc(common)"

<snip>

Note that because it is including pc/pc(common) the keys on pc/pc(common)
override any subsequent modifiers setup by the primary group.

I removed this include line in my local installation, and have noticed no
problems with the us layout.  Even when using us layout alone (setxkbmap us
-option), the windows keys properly create Super_L and Super_R.
Comment 2 Daniel Stone 2006-04-02 10:51:35 UTC
this should work just fine in xk-c

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.