Bug 79564 - (xkb) xkb/symbols/pc keymaps broken wrt modifiers
Summary: (xkb) xkb/symbols/pc keymaps broken wrt modifiers
Alias: None
Product: Red Hat Raw Hide
Classification: Retired
Component: XFree86
Version: 1.0
Hardware: i686
OS: Linux
Target Milestone: ---
Assignee: Mike A. Harris
QA Contact: David Lawrence
Whiteboard: Awaiting upstream response
Depends On:
Blocks: 79578 82770
TreeView+ depends on / blocked
Reported: 2002-12-13 13:56 UTC by Luca Barbieri
Modified: 2007-04-18 16:49 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2003-02-05 01:46:04 UTC

Attachments (Terms of Use)

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):

How Reproducible:
Every time.

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

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@xfree86.org 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).

Note You need to log in before you can comment on or make changes to this bug.