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

Bug#188050: Option XkbSymbols override XkbGeometry



Package: xserver-xfree86
Version: 4.2.1-6


Hello,
I am using czech internacionalized keyboard ucw,
<a href="ftp://atrey.karlin.mff.cuni.cz/pub/local/0rfelyus/ucw-cs-X"/>
and it stopped working since I upgraded to newest version of  
xserver-xfree86.

When starting Xserver I get message from xkbcompile:
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Error:            Can't find file "ucw" for geometry include
>                   Exiting
>                   Abandoning geometry file "default"
Errors from xkbcomp are not fatal to the X server
Couldn't load XKB keymap, falling back to pre-XKB keymap


My keyboard section of /XF86Config-4 is:
Section "InputDevice"
        Identifier  "Generic Keyboard"
        Driver      "keyboard"
        Option      "CoreKeyboard"
        Option      "Protocol" "Standard"
        Option      "Xkbkeycodes" "xfree86"
        Option      "XkbTypes" "ucw"
        Option      "XkbCompat" "ucw"
        Option      "XkbSymbols" "ucw(pc104-qwerty-caps)"
        Option      "XkbGeometry" "pc(pc104)"
EndSection

Although XkbGeometry is set to pc(pc104) xbkcompat reads such a config 
from stdin when beeing executed:

xkb_keymap "default" {
    xkb_keycodes             { include "xfree86" };
    xkb_types                { include "ucw" };
    xkb_compatibility        { include "ucw" };
    xkb_symbols              { include "ucw(pc104-qwerty-caps)" };
    xkb_geometry             { include "ucw(pc104-qwerty-caps)" };
};

But there is no file ucw in directory /etc/X11/xkb/geometry(and never 
was).

When I have changed keyboard config to:
Section "InputDevice"
        Identifier  "Generic Keyboard"
        Driver      "keyboard"
        Option      "CoreKeyboard"
        Option      "Protocol" "Standard"
        Option      "Xkbkeycodes" "xfree86"
        Option      "XkbTypes" "ucw"
        Option      "XkbCompat" "ucw"
#        Option      "XkbSymbols" "ucw(pc104-qwerty-caps)"
        Option      "XkbGeometry" "pc(pc104)"
EndSection

String which is beeing piped to xkbconfig changed to:
xkb_keymap "default" {
    xkb_keycodes             { include "xfree86" };
    xkb_types                { include "ucw" };
    xkb_compatibility        { include "ucw" };
    xkb_symbols              { include "us(pc101)" };
    xkb_geometry             { include "pc(pc104)" };
};


It seems to me, that XkbSymbols overrides value of XkbGeometry.
I have created simple script to be used insted of xkbcomp:

ivan@brezina1:~$ cat /usr/X11R6/lib/X11/xkb/xkbcomp
#!/bin/sh
cat >/tmp/pipe
echo "$@" >>/tmp/pipe
exec /usr/X11R6/lib/X11/xkb/xkbcomp.orig "$@" </tmp/pipeok

File /tmp/pipe contains bugy version of string for xkbcomp. 
File /tmp/pipeok contains correct arguments for xkbcomp. 
Unfortunetly I am unable to store them directly into 
/etc/X11/XF86Config-4.

ivan@brezina1:~$ cat /tmp/pipeok
xkb_keymap "default" {
    xkb_keycodes             { include "xfree86" };
    xkb_types                { include "ucw" };
    xkb_compatibility        { include "ucw" };
    xkb_symbols              { include "ucw(pc104-qwerty-caps)" };
    xkb_geometry             { include "pc(pc104)" };
};
 

With this configuration Czech keyboard works again for me.

Ivan Brezina







Reply to: