Hello, 2008/7/28 Andrei Popescu <[EMAIL PROTECTED]>: > Ok, here's a patch which makes sense IMO: > > > --- xorg.orig 2008-07-27 23:45:44.000000000 +0300 > +++ xorg.new 2008-07-27 23:57:04.000000000 +0300 > @@ -183,9 +183,10 @@ > * ogham is434laptop = > pc+ie(ogam_is434) > * ori basic = pc+in(ori) > * ro de = pc+ro(winkeys) > - * ro us = pc+ro(std_comma) > - * ro std = pc+ro(std_cedilla) > - * ro academic = > pc+ro(std_comma) > + * ro us = pc+ro(std) > + * ro academic = pc+ro(std) > + * ro std_comma = pc+ro(std) > + * ro comma = pc+ro(basic) > * ru os = pc+ru(os_legacy) > * sapmi basic = pc+no(smi) > * sapmi nodeadkeys = > pc+no(smi_nodeadkeys) > > > Bonus, old names "academic", "comma" and "std_comma" are now mapped to > the correct variants.
I've applied the patch and here is the output from running setxkbmap: setxkbmap -v 10 -layout us,ro,ru -variant ,std,phonetic Setting verbose level to 10 locale is C Warning! Multiple definitions of keyboard layout Using command line, ignoring X server Warning! Multiple definitions of layout variant Using command line, ignoring X server Applied rules from xorg: model: pc104 layout: us,ro,ru variant: ,std,phonetic options: grp:menu_toggle, ctrl:nocaps Trying to build keymap using the following components: keycodes: xfree86+aliases(qwerty) types: complete compat: complete symbols: pc+us+ro(std_cedilla):2+ro(std):2+ru(phonetic):3+group(menu_toggle)+ctrl(nocaps) geometry: pc(pc104) setxkbmap -v 10 -layout ro,us,ru -variant std,,phonetic Setting verbose level to 10 locale is C Warning! Multiple definitions of keyboard layout Using command line, ignoring X server Warning! Multiple definitions of layout variant Using command line, ignoring X server Applied rules from xorg: model: pc104 layout: ro,us,ru variant: std,,phonetic options: grp:menu_toggle, ctrl:nocaps Trying to build keymap using the following components: keycodes: xfree86+aliases(qwertz) types: complete compat: complete symbols: pc+ro(std)+us:2+ru(phonetic):3+group(menu_toggle)+ctrl(nocaps) geometry: pc(pc104) It can be easily observed that symbols for the first configuration do not match the command. The naming for romanian layouts is a bit messy. For example, can someone explain why there is reference to std_comma in /usr/share/X11/xkb/rules/base but it is never defined or declared? Well, Andrei adds it in his patch but it wasn't quite correct before. Finally I came up with a patch that I am pretty sure will help solve some issues. Here what it does: - remove bad aliases (std was aliased to std_cedilla) - changed all references from std_comma to std (std is the reference) - added std_comma and comma aliases (as Andrei's patch does) With this patch setxkbmap returns correct output and xfce4-xkb-plugin is happy. I am sure that the bad aliases were the actual bug that had to be solved. Pretty amazed how such an obvious thing could slip into the wild. Here is another point that I would like to make. In my config us has no variant and I thought that it would be redundant to add std variant to ro as it is the *standard*. The default for ro seems to be the 'basic' variant. How the default variant is chosen? Is it the first one to be listed in symbols/ro file? Thanks, Igor -- :wq
--- /usr/share/X11/xkb/rules/base 2008-05-28 15:13:37.000000000 +0300 +++ usr/tmp/base 2008-07-28 12:41:19.000000000 +0300 @@ -183,9 +183,10 @@ * ogham is434laptop = pc+ie(ogam_is434) * ori basic = pc+in(ori) * ro de = pc+ro(winkeys) - * ro us = pc+ro(std_comma) - * ro std = pc+ro(std_cedilla) - * ro academic = pc+ro(std_comma) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) * ru os = pc+ru(os_legacy) * sapmi basic = pc+no(smi) * sapmi nodeadkeys = pc+no(smi_nodeadkeys) @@ -258,9 +259,8 @@ * ogham(is434laptop) = pc+ie(ogam_is434) * ori(basic) = pc+in(ori) * ro(de) = pc+ro(winkeys) - * ro(us) = pc+ro(std_comma) - * ro(std) = pc+ro(std_cedilla) - * ro(academic) = pc+ro(std_comma) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) * ru(os) = pc+ru(os_legacy) * sapmi(basic) = pc+no(smi) * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) @@ -359,9 +359,8 @@ * ogham(is434laptop) = pc+ie(ogam_is434) * ori(basic) = pc+in(ori) * ro(de) = pc+ro(winkeys) - * ro(us) = pc+ro(std_comma) - * ro(std) = pc+ro(std_cedilla) - * ro(academic) = pc+ro(std_comma) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) * ru(os) = pc+ru(os_legacy) * sapmi(basic) = pc+no(smi) * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) @@ -417,9 +416,8 @@ * ogham is434laptop = pc+ie(ogam_is434) * ori basic = pc+in(ori) * ro de = pc+ro(winkeys) - * ro us = pc+ro(std_comma) - * ro std = pc+ro(std_cedilla) - * ro academic = pc+ro(std_comma) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) * ru os = pc+ru(os_legacy) * sapmi basic = pc+no(smi) * sapmi nodeadkeys = pc+no(smi_nodeadkeys) @@ -492,9 +490,8 @@ ogham(is434laptop) = +ie(ogam_is434):2 ori(basic) = +in(ori):2 ro(de) = +ro(winkeys):2 - ro(us) = +ro(std_comma):2 - ro(std) = +ro(std_cedilla):2 - ro(academic) = +ro(std_comma):2 + ro(us) = +ro(std):2 + ro(academic) = +ro(std):2 ru(os) = +ru(os_legacy):2 sapmi(basic) = +no(smi):2 sapmi(nodeadkeys) = +no(smi_nodeadkeys):2 @@ -568,9 +565,8 @@ ogham(is434laptop) = +ie(ogam_is434):3 ori(basic) = +in(ori):3 ro(de) = +ro(winkeys):3 - ro(us) = +ro(std_comma):3 - ro(std) = +ro(std_cedilla):3 - ro(academic) = +ro(std_comma):3 + ro(us) = +ro(std):3 + ro(academic) = +ro(std):3 ru(os) = +ru(os_legacy):3 sapmi(basic) = +no(smi):3 sapmi(nodeadkeys) = +no(smi_nodeadkeys):3 @@ -644,9 +640,8 @@ ogham(is434laptop) = +ie(ogam_is434):4 ori(basic) = +in(ori):4 ro(de) = +ro(winkeys):4 - ro(us) = +ro(std_comma):4 - ro(std) = +ro(std_cedilla):4 - ro(academic) = +ro(std_comma):4 + ro(us) = +ro(std):4 + ro(academic) = +ro(std):4 ru(os) = +ru(os_legacy):4 sapmi(basic) = +no(smi):4 sapmi(nodeadkeys) = +no(smi_nodeadkeys):4 @@ -693,9 +688,8 @@ ogham is434laptop = +ie(ogam_is434):2 ori basic = +in(ori):2 ro de = +ro(winkeys):2 - ro us = +ro(std_comma):2 - ro std = +ro(std_cedilla):2 - ro academic = +ro(std_comma):2 + ro us = +ro(std):2 + ro academic = +ro(std):2 ru os = +ru(os_legacy):2 sapmi basic = +no(smi):2 sapmi nodeadkeys = +no(smi_nodeadkeys):2 @@ -741,9 +735,8 @@ ogham is434laptop = +ie(ogam_is434):3 ori basic = +in(ori):3 ro de = +ro(winkeys):3 - ro us = +ro(std_comma):3 - ro std = +ro(std_cedilla):3 - ro academic = +ro(std_comma):3 + ro us = +ro(std):3 + ro academic = +ro(std):3 ru os = +ru(os_legacy):3 sapmi basic = +no(smi):3 sapmi nodeadkeys = +no(smi_nodeadkeys):3 @@ -789,9 +782,8 @@ ogham is434laptop = +ie(ogam_is434):4 ori basic = +in(ori):4 ro de = +ro(winkeys):4 - ro us = +ro(std_comma):4 - ro std = +ro(std_cedilla):4 - ro academic = +ro(std_comma):4 + ro us = +ro(std):4 + ro academic = +ro(std):4 ru os = +ru(os_legacy):4 sapmi basic = +no(smi):4 sapmi nodeadkeys = +no(smi_nodeadkeys):4