Bug 487401

Summary: Invalid XkbLayout/XkbVariant combination, e.g. us/nodeadkeys disables xkb, which results in unfunctional Zapping/VT-Switching
Product: [openSUSE] openSUSE 11.1 Reporter: Harald Koenig <koenig>
Component: X.OrgAssignee: E-mail List <xorg-maintainer-bugs>
Status: RESOLVED UPSTREAM QA Contact: E-mail List <xorg-maintainer-bugs>
Severity: Minor    
Priority: P4 - Low CC: sndirsch
Version: Final   
Target Milestone: ---   
Hardware: x86-64   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Harald Koenig 2009-03-20 17:36:53 UTC
after updating workPC to 11.1 CTRL-ALT-BACKSPACE and CTRL-ALT-F1 to -F6 did not work anymore (initially no ServerFlags section in xorg.conf).

I tried to add explicit server flags with no success:

Section "ServerFlags"
  Option "DontVTSwitch"  "false"
  Option "DontZap"       "false"
EndSection


comparing the keyboard section of my working (== zapping/vc-switchign) notebook xorg.conf showed that it's a problem in the keyboard section:

Section "InputDevice"
    Identifier  "venus_keyboard"
    Driver      "kbd"
    Option      "Protocol" "Standard"
    Option      "XkbLayout" "us"
    Option      "XkbModel" "pc104"
    Option      "XkbRules" "xfree86"

    Option      "AutoRepeat" "500 30"
    Option      "LeftAlt" "Meta"
    Option      "RightAlt" "ModeShift"

#    Option      "XkbKeymap" "xfree86(us)"
#    Option      "XkbVariant" "nodeadkeys"
EndSection


if I use one of the last two options ("XkbKeymap"/"XkbVariant") then zapping/switching does not work anymore!

bug or known feature ?


using option "XkbKeymap" the Xserver log shows the following messages which I wouldn't consider significant for or related to the zapping/vc-switching problem:

(**) venus_keyboard: XkbKeymap: "xfree86(us)"
(**) venus_keyboard: XkbKeymap overrides all other XKB settings
(EE) XKB: No components provided for device venus_keyboard
(WW) Couldn't load XKB keymap, falling back to pre-XKB keymap



only adding option "XkbVariant" does not issue any server warnings/errors at all.
Comment 1 Harald Koenig 2009-03-20 18:04:00 UTC
update after some more testing with "good" keyboard sections for german keyboards:


option "XkbVariant" is not a problem iff valid strings for variants are used for the specific layouts:

with german keyboard ("XkbLayout" "de") Option "XkbVariant" "nodeadkeys" allows zapping/switching.

with "us" layout the variants "intl" and "" (empty string) allow zapping too, but the invalid "nodeadkeys" blocks zapping.



option "XkbKeymap" was a leftover of older versions of XF86Config/xorg.conf, that can be just ignored, but anyway it should not trigger such problems....
Comment 2 Stefan Dirsch 2009-03-20 18:19:56 UTC
Hi Harald. We, i.e. everybody missed you on FOSDEM!

(In reply to comment #0)
> after updating workPC to 11.1 CTRL-ALT-BACKSPACE and CTRL-ALT-F1 to -F6 did 
> not work anymore (initially no ServerFlags section in xorg.conf).
> 
> I tried to add explicit server flags with no success:
> 
> Section "ServerFlags"
>   Option "DontVTSwitch"  "false"
>   Option "DontZap"       "false"
> EndSection

I think you need to have xkb working for Zapping and VT switching meanwhile,
which you obviously didn't (see below).

> comparing the keyboard section of my working (== zapping/vt-switching) 
> notebook xorg.conf showed that it's a problem in the keyboard section:
> 
> Section "InputDevice"
>     Identifier  "venus_keyboard"
>     Driver      "kbd"
>     Option      "Protocol" "Standard"
>     Option      "XkbLayout" "us"
>     Option      "XkbModel" "pc104"
>     Option      "XkbRules" "xfree86"
> 
>     Option      "AutoRepeat" "500 30"
>     Option      "LeftAlt" "Meta"
>     Option      "RightAlt" "ModeShift"
> 
> #    Option      "XkbKeymap" "xfree86(us)"
> #    Option      "XkbVariant" "nodeadkeys"
> EndSection
> 
> if I use one of the last two options ("XkbKeymap"/"XkbVariant") then
> zapping/switching does not work anymore!
> 
> bug or known feature ? 
> 
> using option "XkbKeymap" the Xserver log shows the following messages which I
> wouldn't consider significant for or related to the zapping/vc-switching
> problem:
> 
> (**) venus_keyboard: XkbKeymap: "xfree86(us)"
> (**) venus_keyboard: XkbKeymap overrides all other XKB settings
> (EE) XKB: No components provided for device venus_keyboard
> (WW) Couldn't load XKB keymap, falling back to pre-XKB keymap
>
> only adding option "XkbVariant" does not issue any server warnings/errors at
> all.

I think  "XkbKeymap" is an invalid keyword. At least I can't find it in
'man kbd'. Seems this config is not written by SaX2. Otherwise you would have
had a ServerFlags section. Thus closing as INVALID.
Comment 3 Harald Koenig 2009-03-20 20:01:25 UTC
Hi Stefan,

> I think  "XkbKeymap" is an invalid keyword. At least I can't find it in
> 'man kbd'. 

wrong!  as I aldreay quoted the server _knows_ about this option and issues an explicit message.  it's only legacy, but known and valid:

	(**) venus_keyboard: XkbKeymap: "xfree86(us)"
	(**) venus_keyboard: XkbKeymap overrides all other XKB settings

	harald > strings /usr/lib64/xorg/modules/input/kbd_drv.so  | grep -i xkbkeymap
	XkbKeymap
	%s: XkbKeymap overrides all other XKB settings


> Seems this config is not written by SaX2. Otherwise you would have
> had a ServerFlags section. 

correct.  but as I mentioned above, "DontZap" in ServerFlags won't help/fix.


> Thus closing as INVALID.

reopened:  this is an Xserver bug!

a) even invalid config files shall not cause such nasty side effects.

b) Option "XkbVariant" is perfectly valid (though the parameter was valid but wrong for this specific layout).  this shall even less cause such problems with zapping/vc-switching.
Comment 4 Stefan Dirsch 2009-03-31 10:22:44 UTC
Harald, any chance to report this upstream? I'm afraid we'll never find the time
to investigate issues, which are the result of a manually written broken configuration.
Comment 5 Stefan Dirsch 2009-04-16 02:59:30 UTC
Harald, please report upstream on bugs.freedesktop.org. Thanks.