Bug 79564

Summary: (xkb) xkb/symbols/pc keymaps broken wrt modifiers
Product: [Retired] Red Hat Raw Hide Reporter: Luca Barbieri <ldb>
Component: XFree86Assignee: Mike A. Harris <mharris>
Status: CLOSED RAWHIDE QA Contact: David Lawrence <dkl>
Severity: high Docs Contact:
Priority: medium    
Version: 1.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard: Awaiting upstream response
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-02-05 01:46:04 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 79578, 82770    

Description Luca Barbieri 2002-12-13 13:56:17 UTC
Description of Problem:
XFree86 appears to have started to use keymaps present in
/etc/X11/xkb/symbols/pc rather than the ones in /etc/X11/xkb/symbols.
However these keymaps are broken in their handling of modifiers.

These are the old general modifier definitions:
// definition for the extra keys on 104-key "Windows95" keyboards
xkb_symbols "pc104" {
    include "us(generic101)"
    key <LALT> {        [       Alt_L,  Meta_L          ]       };
    key <RALT> {        [       Alt_R,  Meta_R          ]       };
    key <LWIN> {        [       Super_L                 ]       };
    key <RWIN> {        [       Super_R                 ]       };

    modifier_map Mod1   { Alt_L, Alt_R, Meta_L, Meta_R };
    modifier_map Mod4   { Super_L, Super_R };
};

And these are the new broken ones:
    key <LALT> {        [       Alt_L           ]       };
    key <RALT> {        [       Alt_R           ]       };
    key <LWIN> {        [       Meta_L          ]       };
    key <RWIN> {        [       Multi_key       ]       };
    modifier_map Mod1   { Alt_L, Alt_R };
    modifier_map Mod4   { Meta_L, Meta_R };

As you can see, the Windows keys have been changed from Super to Meta/Multi_key
and the Alt keys are no longer Meta keys.

This results, for example, in having to use the Windows key for Emacs key
combinations, which doesn't make sense.


A second problem is related to the Italian keyboard layout.
In that layout pressing RAlt+Shift+E is supposed to emit the eurocent symbol.
This happens if the keys are pressed in this order, but if they are pressed as
Shift+RAlt+E a beep is emitted instead.

Changing the following line:
   key <RALT>  { type[Group1]="TWO_LEVEL",
                  [ ISO_Level3_Shift, Multi_key ]   };
to this one:
   key <RALT>  { type[Group1]="TWO_LEVEL",
                  [ ISO_Level3_Shift, ISO_Level3_Shift ]   };

solves the problem (although it may introduce other ones and probably isn't the
correct way to solve this).


Both these problems weren't present before the switch to pc/


Version-Release number of selected component (if applicable):
XFree86-4.2.99.2-0.20021209.0

How Reproducible:
Every time.

Additional information:
Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "keyboard"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xfree86"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "it"
EndSection

Comment 1 Mike A. Harris 2002-12-14 04:57:08 UTC
This bug is acknowledged and confirmed.  XFree86 just recently had a revamping
of the xkb infrastructure, and there are some bumps left that need to be
fixed.  These issues should be fixed before the final release of 4.3.0
however, and people upstream are looking into them.

I'll update this report when it is believed to be fixed properly.

Comment 2 Mike A. Harris 2003-01-23 02:14:45 UTC
I've sent out an email to the xfree86 mailing list to report
this problem and see if anyone else knows what the correct fix is rather
than putting in a potential hack/kludge.

Awaiting upstream response.

Comment 3 Mike A. Harris 2003-02-05 01:46:04 UTC
Fixed in latest XFree86 CVS:

 827. Include server control definitions in some XKB maps that were missing
      them (based on #A.1562, Jens Petersen).
 826. Define Alt/Meta modifiers for the jp106 XKB layout, and include
      server control definitions (#A.1562, Jens Petersen).