Bug 55866 - kxkb doesn't work with xfree-4.3 (uses wrong symbols dir)
Summary: kxkb doesn't work with xfree-4.3 (uses wrong symbols dir)
Status: RESOLVED FIXED
Alias: None
Product: kxkb
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Andriy Rysin
URL:
Keywords:
: 55614 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-03-12 14:00 UTC by Lubos Lunak
Modified: 2003-05-07 22:20 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lubos Lunak 2003-03-12 14:00:15 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources

With XFree-4.3, kxkb offers incorrect variants for layouts. I don't actually understand exactly what's going on, but it's about like this: 
I have as a primary layout selected 'us' layout, with 'pc105' variant. Kxkb uses the following command to enable it :

setxkbmap -rules xfree86 -model microsoftpro -layout us -variant pc105

The problem is, this command won't work, only after removal of the -variant option, or when using 'basic' as the variant. Adding -print to this setxkbmap command shows:

xkb_keymap {
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc/pc(pc104)+pc/us(pc105)+inet(microsoftpro)"  };
        xkb_geometry  { include "microsoft(natural)"    };
};

The 'xkb_symbols' line AFAIK means that symbols are searched in /usr/X11R6/lib/X11/xkb/symbols/pc/ directory, while kxkb parses /usr/X11R6/lib/X11/xkb/symbols/ (i.e. not the pc/ subdir). The symbols file in symbols/pc/ has only one 'basic' variant, and the one from symbols/ dir has all variants that kxkb offers (and I've been told that files in symbols/* are obsolete).

So kxkb should somehow find out it should parse symbols/pc/ files, not symbols/ . But I have no idea how.
Comment 1 Thiago Macieira 2003-03-12 23:27:57 UTC
The search path is correct. Note your xkb_symbols line contains pc/pc(pc104) and 
pc/us(pc105), which instruct xkb to read from /usr/X11R6/lib/X11/xkb/symbols/ 
subdirectory pc. Note even that the inet file that is mentioned is: 
 
/usr/X11R6/lib/X11/xkb/symbols/inet. 
 
I agree that there is a problem: if the pc105 variant will cause problems, kxkb should 
not offer it in the first place. 
 
 
Comment 2 Thiago Macieira 2003-03-12 23:33:07 UTC
It seems to be a XFree86 4.3's configuration problem. Check this out: 
 
% setxkbmap 'us_intl' -print 
xkb_keymap { 
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       }; 
        xkb_types     { include "complete+caps(internal)"       }; 
        xkb_compat    { include "complete"      }; 
        xkb_symbols   { include 
"us(pc104)+us_intl+group(switch)+ctrl(ctrl_aa)+altwin(left_meta_win)"   }; 
        xkb_geometry  { include "pc(pc104)"     }; 
}; 
 
% setxkbmap 'us_intl+inet(acpi)' -print 
xkb_keymap { 
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       }; 
        xkb_types     { include "complete+caps(internal)"       }; 
        xkb_compat    { include "complete"      }; 
        xkb_symbols   { include 
"pc/pc(pc104)+pc/us_intl+inet(acpi)+group(switch)+ctrl(ctrl_aa)+altwin(left_meta_win)"  
}; 
        xkb_geometry  { include "pc(pc104)"     }; 
}; 
 
Note that the second time, the pc/us_intl keyboard was tried, which doesn't even 
exist. 
 
Comment 3 Thiago Macieira 2003-03-13 11:41:02 UTC
Maybe this is related to bug #55614? 
Comment 4 Lubos Lunak 2003-03-13 13:26:33 UTC
Yes, it should be basically the same. 
 
Comment 5 Yuri Shemanin 2003-04-05 22:50:38 UTC
That's not a KDE bug, that's a new bug of XFree86-4.3 
1) It exists under just X without KDE or any window manager. 
2) If you substitute subtree /usr/X11R6/lib/X11/xkb/* in XFree 4.3 to that subtree 
from XFree 4.2 all works just fine (at least under FreeBSD). 
 
Yuri 
 
 
 
Comment 6 Thiago Macieira 2003-04-05 23:00:29 UTC
Agreed, not a KDE bug per se (therefore maybe we should close the bug ticket). 
Thanks for the report. 
 
Anyways, I should mention that I did manage to find one more piece of information 
that might be of use: the xkb/rules/xfree86 file. XFree86 reads that file to find out 
what files exactly to read. 
 
For instance, now when doing a simple setxkbmap us_intl, it reads the pc/us_intl file 
because in the file I mentioned there's an entry more or less like this: 
	*	*	pc/pc(pc104)+pc/%m(%l) 
thus it makes my keymap by concatenating pc/pc variant pc104 with pc/us_intl 
variant pc105. 
Comment 7 Andriy Rysin 2003-05-04 22:06:48 UTC
this is due to new one-group layouts that are used in XFree86 4.3
if the layout is not defined in $oldlayouts in rules/xfree86 file then it's
taken from symbols/pc/ directory rather than symbols/
This cuased wrong variants to be listed for some layouts (e.g. us)
Now checking for layout in $oldlayouts list and behaving accodingly
Please test and report if you still have problems.
Comment 8 Andriy Rysin 2003-05-04 22:08:13 UTC
*** Bug 55614 has been marked as a duplicate of this bug. ***
Comment 9 Paul Pogonyshev 2003-05-07 22:20:36 UTC
Works here. Thank you very much.