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

Bug#490013: More info regargin xkb-data and 'ro' layouts



Hello,

2008/7/28 Andrei Popescu <andreimpopescu@gmail.com>:
> 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

Reply to: