Re: [Bug 19947] xkbcomp-1.0.5: Group width mismatch between key and type

2009-02-23 Thread Martin MOKREJŠ
Martin MOKREJŠ wrote:

Forgot to add that the [alt]+[shift] switch works with the setup I have now.
Only I suspect that [shift]+twice pressing [=] on the US keyboard layout
followed by pressing [u] should generate ů instead of ˇu. But, the character
is anyway mapped over the [;] character of US layout.

Is there a way to get a graphical layout of the expected buttons from
my installation and some reference layout (gif/jpg/ps or X11 live app)?

I see xvkbd but it does not change its output if I switch between the
keyboard layouts:

$ xvkbd
xvkbd: Mode_switch not available as a modifier
xvkbd: although ISO_Level3_Shift is used instead, AltGr may not work correctly
xvkbd: Mode_switch not available as a modifier
xvkbd: although ISO_Level3_Shift is used instead, AltGr may not work correctly
xvkbd: Mode_switch not available as a modifier
xvkbd: although ISO_Level3_Shift is used instead, AltGr may not work correctly
xvkbd: Mode_switch not available as a modifier
xvkbd: although ISO_Level3_Shift is used instead, AltGr may not work correctly
$

Thanks
Martin

___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg

Re: [Bug 19947] xkbcomp-1.0.5: Group width mismatch between key and type

2009-02-23 Thread Martin MOKREJŠ
Hi Peter,
  thanks for excellent explanations. More below.

Peter Hutterer wrote:
>> (**) Option "xkb_rules" "evdev"
>> (**) AT Translated Set 2 keyboard: xkb_rules: "evdev"
>> (**) Option "xkb_model" "evdev"
>> (**) AT Translated Set 2 keyboard: xkb_model: "evdev"
>> (**) Option "xkb_layout" "us,cz"
>> (**) AT Translated Set 2 keyboard: xkb_layout: "us,cz"
>> (**) Option "xkb_variant" ",qwerty"
>> (**) AT Translated Set 2 keyboard: xkb_variant: ",qwerty"
>> (**) Option "xkb_options" 
>> "grp:alt_shift_togglegrp_led:scrollcaps:shift_nocancel"
>> (**) AT Translated Set 2 keyboard: xkb_options: 
>> "grp:alt_shift_togglegrp_led:scrollcaps:shift_nocancel"
> 
> this last line is wrong, see below.
> 
>> xkb_keymap {
>> xkb_keycodes "evdev+aliases(qwerty)" {
> [...]
>  
>> xkb_types "complete" {
> [...]
> 
>> xkb_compatibility "complete" {
> [...]
> 
>> xkb_symbols "pc+us+cz(qwerty):2+inet(evdev)" {
> [...]
> 
> this is what actually is loaded in the server. You see how all your options
> are missing? This is because of a wrong setup (fdi file below).

Until one know how it should look like it is not that clear.
Now I see what had to be there:

(II) config/hal: Adding input device AT Translated Set 2 keyboard
(**) AT Translated Set 2 keyboard: always reports core events
(**) AT Translated Set 2 keyboard: Device: "/dev/input/event4"
(II) AT Translated Set 2 keyboard: Found keys
(II) AT Translated Set 2 keyboard: Configuring as keyboard
(II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: 
KEYBOARD)
(**) Option "xkb_rules" "evdev"
(**) Option "xkb_model" "pc105"
(**) Option "xkb_layout" "us,cz"
(**) Option "xkb_variant" ",qwerty"
(**) Option "xkb_options" 
"grp:alt_shift_toggle,grp_led:scroll,caps:shift_nocancel"

 > 
>> key  { [ Shift_L ] };
>> key  { [ Shift_R ] };
>> key  { [   Alt_L,  Meta_L ] };
>> key  {
>> type[group2]= "ONE_LEVEL",
>> symbols[Group1]= [   Alt_R,  Meta_R ],
>> symbols[Group2]= [ ISO_Level3_Shift ]
>> };
> 
> here's the details why it doesn't work, the Alt/Shift keys dont have the
> required ISO_Next_Group, ISO_Prev_Group they should have, hence group
> switching doesn't work.


So here is what I have now compared to the former/broken:

# xkbcomp :0 -xkb out.xkb3
# diff -u -w out.xkb out.xkb3
--- out.xkb 2009-02-12 17:54:32.0 +0100
+++ root/out.xkb3   2009-02-23 16:56:36.0 +0100
@@ -291,7 +291,7 @@
 alias  = ;
 };
 
-xkb_types "complete" {
+xkb_types "complete+caps(shift_nocancel)" {
 
 virtual_modifiers 
NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
 
@@ -309,6 +309,7 @@
 modifiers= Shift+Lock;
 map[Shift]= Level2;
 map[Lock]= Level2;
+map[Shift+Lock]= Level2;
 level_name[Level1]= "Base";
 level_name[Level2]= "Caps";
 };
@@ -489,10 +490,11 @@
 modifiers= Shift+Lock+LevelThree;
 map[Shift]= Level2;
 map[Lock]= Level2;
+map[Shift+Lock]= Level2;
 map[LevelThree]= Level3;
 map[Shift+LevelThree]= Level4;
 map[Lock+LevelThree]= Level4;
-map[Shift+Lock+LevelThree]= Level3;
+map[Shift+Lock+LevelThree]= Level4;
 level_name[Level1]= "Base";
 level_name[Level2]= "Shift";
 level_name[Level3]= "Alt Base";
@@ -502,6 +504,7 @@
 modifiers= Shift+Lock+LevelThree;
 map[Shift]= Level2;
 map[Lock]= Level2;
+map[Shift+Lock]= Level2;
 map[LevelThree]= Level3;
 map[Shift+LevelThree]= Level4;
 map[Lock+LevelThree]= Level3;
@@ -582,7 +585,7 @@
 };
 };
 
-xkb_compatibility "complete" {
+xkb_compatibility "complete+ledscroll(group_lock)" {
 
 virtual_modifiers 
NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
 
@@ -1048,8 +1051,7 @@
 modifiers= NumLock;
 };
 indicator "Scroll Lock" {
-whichModState= locked;
-modifiers= ScrollLock;
+groups= 0xfe;
 };
 indicator "Shift Lock" {
 !allowExplicit;
@@ -1066,7 +1068,7 @@
 };
 };
 
-xkb_symbols "pc+us+cz(qwerty):2+inet(evdev)" {
+xkb_symbols "pc+us+cz(qwerty):2+inet(evdev)+group(alt_shift_toggle)" {
 
 name[group1]="USA";
 name[group2]="Czechia - qwerty";
@@ -1278,7 +1280,10 @@
 symbols[Group1]= [   grave,  asciitilde ],
 symbols[Group2]= [   semicolon,  dead_abovering,   grave,  
asciitilde ]
 };
-key  { [ Shift_L ] };
+key  {
+type= "PC_ALT_LEVEL2",
+symbols[Group1]= [ Shift_L,  ISO_Prev_Group ]
+};
 key  {
 type[group2]= "FOUR_LEVEL",
 symbols[Group1]= [   backslash, bar ],
@@ -1341,12 +1346,15 @@
 symbols[Group1]= [   slash,question ],
 symbols[Group2]= [   m

Re: [Bug 19947] xkbcomp-1.0.5: Group width mismatch between key and type

2009-02-22 Thread Peter Hutterer
On Sat, Feb 21, 2009 at 08:15:36PM +0100, Martin MOKREJŠ wrote:
>   Should I use in HAL .fdi files "input.xkb.layout" or
> "input.x11_options.XkbLayout"?

the latter is for X server specifics, the former for system-wide
configuration (e.g. . The latter overrides the former. Both are fine to set.
For example, in Fedora we set the input.xkb.* keys automatically from
/etc/sysconfig/keyboard, but you can override them through the x11_options for
specific devices if you need to.
 
>   I don't know the internals of xorg server, so ... I am puzzled why
> the /usr/bin/xkbcomp is being called twice, as logged in Xorg.0.log.
> I even cannot find the file to existing for teh currently running
> instance:

xkbcomp is called once for each keyboard (i.e. once for each
input.capabilities = input.keyboard device).
you most likely have multiple of those.

> (**) Option "xkb_rules" "evdev"
> (**) AT Translated Set 2 keyboard: xkb_rules: "evdev"
> (**) Option "xkb_model" "evdev"
> (**) AT Translated Set 2 keyboard: xkb_model: "evdev"
> (**) Option "xkb_layout" "us,cz"
> (**) AT Translated Set 2 keyboard: xkb_layout: "us,cz"
> (**) Option "xkb_variant" ",qwerty"
> (**) AT Translated Set 2 keyboard: xkb_variant: ",qwerty"
> (**) Option "xkb_options" 
> "grp:alt_shift_togglegrp_led:scrollcaps:shift_nocancel"
> (**) AT Translated Set 2 keyboard: xkb_options: 
> "grp:alt_shift_togglegrp_led:scrollcaps:shift_nocancel"

this last line is wrong, see below.

> xkb_keymap {
> xkb_keycodes "evdev+aliases(qwerty)" {
[...]
 
> xkb_types "complete" {
[...]

> xkb_compatibility "complete" {
[...]

> xkb_symbols "pc+us+cz(qwerty):2+inet(evdev)" {
[...]

this is what actually is loaded in the server. You see how all your options
are missing? This is because of a wrong setup (fdi file below).

when I run setxkbmap with the settings you're presumably trying to get:
$> setxkbmap -layout "us,cz" -variant ",qwerty" -option "grp:alt_shift_toggle"\
 -option "grp_led:scroll" -option "caps:shift_nocancel" -print 
xkb_keymap {
xkb_keycodes  { include "evdev+aliases(qwerty)" };
xkb_types { include "complete+caps(shift_nocancel)" };
xkb_compat{ include "complete+ledscroll(group_lock)"};
xkb_symbols   { include 
"pc+us+cz(qwerty):2+inet(evdev)+group(alt_shift_toggle)"};
xkb_geometry  { include "pc(pc104)" };
};

this command should work for you. (remove the -print option to set it and check 
the server log)


> key  { [ Shift_L ] };
> key  { [ Shift_R ] };
> key  { [   Alt_L,  Meta_L ] };
> key  {
> type[group2]= "ONE_LEVEL",
> symbols[Group1]= [   Alt_R,  Meta_R ],
> symbols[Group2]= [ ISO_Level3_Shift ]
> };

here's the details why it doesn't work, the Alt/Shift keys dont have the
required ISO_Next_Group, ISO_Prev_Group they should have, hence group
switching doesn't work.

> 
> 
> 
> 
>   
>
>   mouse
>string="Linux">
> evdev
>   
>
> 
>
>   evdev
>   xorg
>   evdev
>   us,cz
>   ,qwerty
>   
>type="string">grp:alt_shift_toggle
>   grp_led:scroll
>type="string">caps:shift_nocancel
>
> 
>
>   
>   
>
> 

I hope this is the actual part that takes effect, because with all the bits
that are comments in that file I lost track of what actually matters now. In
the future, please remove things that look like configurations but are just
comments.
 
Anyway, this explains your troubles, xkb options need to be separated
by commas, you're just appending strings (a leftover from what I guess used to
be your strlist configuration), leading to the string we saw in the log. this
string doesn't represent a valid option, so nothing happens.
either append commas, or just do away with the  tag and add
everything in the  line, comma-separated of course.

Cheers,
  Peter
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg

Re: [Bug 19947] xkbcomp-1.0.5: Group width mismatch between key and type

2009-02-22 Thread Martin MOKREJŠ
Dan Nicholson wrote:
> On Sat, Feb 21, 2009 at 11:15 AM, Martin MOKREJŠ
>  wrote:
>>  I don't know the internals of xorg server, so ... I am puzzled why
>> the /usr/bin/xkbcomp is being called twice, as logged in Xorg.0.log.
>> I even cannot find the file to existing for teh currently running
>> instance:
> 
> The server pipes xkb source data to xkbcomp, which outputs a compile
> .xkm file. The server then loads the file and destroys it. It happens
> twice because once is the keymap for the core keyboard, and once is
> the keymap for the device. Hopefully one day this interaction can suck
> less, but my guess is that your bug lies elsewhere in XKB.

Thanks Dan, actually it seems it is called always when I go a console
mode from X or while returning (ctrl+alt+F[0-6] or alt+F7). After a while
I see it simply multiple times.

Probably the problem is with my keyboard map then. Lets see who else can
speak up. ;-)

-- 
Martin

___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg

Re: [Bug 19947] xkbcomp-1.0.5: Group width mismatch between key and type

2009-02-22 Thread Dan Nicholson
On Sat, Feb 21, 2009 at 11:15 AM, Martin MOKREJŠ
 wrote:
> Hi,
>  would anybody please tell me what is wrong on my system
> so that the alt+shift switch does not work?

I don't really understand the XKB issue, but I can tell you a bit
about how the server operates on XKB data.

>  Should I use in HAL .fdi files "input.xkb.layout" or
> "input.x11_options.XkbLayout"?

Either one, although input.xkb.layout is preferred (I think).

>  I don't know the internals of xorg server, so ... I am puzzled why
> the /usr/bin/xkbcomp is being called twice, as logged in Xorg.0.log.
> I even cannot find the file to existing for teh currently running
> instance:

The server pipes xkb source data to xkbcomp, which outputs a compile
.xkm file. The server then loads the file and destroys it. It happens
twice because once is the keymap for the core keyboard, and once is
the keymap for the device. Hopefully one day this interaction can suck
less, but my guess is that your bug lies elsewhere in XKB.

--
Dan
___
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg