[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#468331: setxkbmap can setup xkb options that the xserver cannot



Hello,

I have a very similar problem here: setxkbmap can setup xkb options
that the xserver cannot.

xserver-xorg-core version is 2:1.4.1~git20080131-4

I have this in my xorg.conf:

Section "InputDevice"
    Identifier  "Generic Keyboard"
    Driver      "kbd"
    Option      "CoreKeyboard"
    Option      "XkbRules"          "xorg"
    Option      "XkbModel"          "pc105"
#   Option      "XkbLayout"         "fr(oss)"
    Option      "XkbLayout"         "fr(oss),fr(latin9)"
    Option      "XKbOptions"        "grp:lwin_toggle,grp_led:caps"
EndSection

After the xserver is launched, when switching with the lwin key, the
keyboard gives the expected result except for 3 keys:
'e' -> '€'
't' -> 'þ'
'h' -> 'ð'

For those 3 keys group2 of fr-oss is used insted of group1 of fr-latin9
as expected.

If I use setxkbmap with the following command:
setxkbmap -rules xorg -model pc105 -layout "fr(oss),fr(latin9)"
-option "grp:lwin_toggle,grp_led:caps"
I have the expected result: when I switch using the lwin key, the
keyboard behave exactly as expected, that is to say I have a fr-latin9
layout.

setxkbmap -print gives exactly the same output (whether the keyboard
is setup by the xserver or by setxkbmap):
xkb_keymap {
	xkb_keycodes  { include "xfree86+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete+ledcaps(group_lock)"	};
	xkb_symbols   { include "pc+fr(oss)+fr(latin9):2+group
(lwin_toggle)"	}; xkb_geometry  { include "pc(pc105)"	};
};

Note that the situation worsens if instead of fr(latin9) I use a custom
layout derived from fr(oss) like this:

partial default alphanumeric_keys
xkb_symbols "fr-custom" {
include "fr(oss)"
// First row, numbers at level 1
key <AE01> { [1, ampersand, dead_caron, dead_ogonek ] };
key <AE02> { [2, eacute, asciitilde, Eacute ] };
key <AE03> { [3, quotedbl, numbersign,dead_breve ] };
key <AE04> { [4, apostrophe, braceleft, 0x1002014 ] };
key <AE05> { [5, parenleft, bracketleft, 0x1002013 ] };
key <AE06> { [6, minus, bar, 0x1002011 ] };
key <AE07> { [7, egrave, grave, Egrave ] };
key <AE08> { [8, underscore, backslash, trademark ] };
key <AE09> { [9, ccedilla, asciicircum, Ccedilla ] };
key <AE10> { [0, agrave, at, Agrave ] };
};

In such case, after switching with the lwin key, not only three but all
keys are affected except those of first row explicitely modified
in fr-custom, (when keyboard is setup by the xserver, no problem when
the keyboard is setup using setxkbmap).

There is a chance that the fr(oss) layout could be a little borked and
that setxkbmap is more permissive that the xserver. But that would be
nice if the xserver could behave like setxkmap regarding
keyboard layout setup.

In attachment, the output of
setxkbmap  -rules xorg -model pc105 -layout "fr(oss),fr(latin9)"
-option "grp:lwin_toggle,grp_led:caps" -print | xkbcomp -w 10 - :0
I don't know if that helps.

Best regards,

Pascal Dormeau

Attachment: log.xkbcomp
Description: Binary data


Reply to: