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 <LFSH> { [ Shift_L ] }; >> key <RTSH> { [ Shift_R ] }; >> key <LALT> { [ Alt_L, Meta_L ] }; >> key <RALT> { >> 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.000000000 +0100 +++ root/out.xkb3 2009-02-23 16:56:36.000000000 +0100 @@ -291,7 +291,7 @@ alias <LatM> = <AB07>; }; -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 <LFSH> { [ Shift_L ] }; + key <LFSH> { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Shift_L, ISO_Prev_Group ] + }; key <BKSL> { type[group2]= "FOUR_LEVEL", symbols[Group1]= [ backslash, bar ], @@ -1341,12 +1346,15 @@ symbols[Group1]= [ slash, question ], symbols[Group2]= [ minus, underscore, asterisk, dead_abovedot ] }; - key <RTSH> { [ Shift_R ] }; + key <RTSH> { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Shift_R, ISO_Next_Group ] + }; key <KPMU> { type= "CTRL+ALT", symbols[Group1]= [ KP_Multiply, XF86_ClearGrab ] }; - key <LALT> { [ Alt_L, Meta_L ] }; + key <LALT> { [ Alt_L, ISO_Prev_Group ] }; key <SPCE> { type[group2]= "FOUR_LEVEL", symbols[Group1]= [ space ], @@ -1446,7 +1454,7 @@ }; key <RALT> { type[group2]= "ONE_LEVEL", - symbols[Group1]= [ Alt_R, Meta_R ], + symbols[Group1]= [ Alt_R, ISO_Next_Group ], symbols[Group2]= [ ISO_Level3_Shift ] }; key <LNFD> { [ Linefeed ] }; @@ -1516,7 +1524,7 @@ key <I177> { [ XF86Phone ] }; key <I179> { [ XF86Tools ] }; key <I180> { [ XF86HomePage ] }; - key <I181> { [ XF86Refresh ] }; + key <I181> { [ XF86Reload ] }; key <I182> { [ XF86Close ] }; key <I185> { [ XF86ScrollUp ] }; key <I186> { [ XF86ScrollDown ] }; <?xml version="1.0" encoding="utf-8"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.mouse"> <merge key="input.x11_driver" type="string">mouse</merge> <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux"> <merge key="input.x11_driver" type="string">evdev</merge> </match> </match> <match key="info.capabilities" contains="input.keyboard"> <merge key="input.x11_driver" type="string">evdev</merge> <merge key="input.xkb.rules" type="string">xorg</merge> <merge key="input.xkb.model" type="string">pc105</merge> <merge key="input.xkb.layout" type="string">us,cz</merge> <merge key="input.xkb.variant" type="string">,qwerty</merge> <!-- replace 'strlist' with 'string' on 'input.xkb.options' lines, see http://bugs.gentoo.org/show_bug.cgi?id=237742#c5 --> <merge key="input.xkb.options" type="string">grp:alt_shift_toggle,grp_led:scroll,caps:shift_nocancel</merge> </match> <match key="info.product" contains="Video Bus"> <remove key="input.x11_driver"/> <remove key="input.xkb"/> </match> </device> </deviceinfo> So I am still using the deprecated syntax as mentioned in http://cgit.freedesktop.org/xorg/xserver/tree/config/x11-input.fdi It is worth changing? ;-) > 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 <append> tag and add > everything in the <merge> line, comma-separated of course. Why is not hal issuing some error/warning messages that there are not meaningful lines? So what is the strlist and string difference in respect to append and merge? Regarding the "Video Bus" issue I had ... lshal(1) reported: udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input' info.addons.singleton = {'hald-addon-input'} (string list) info.capabilities = {'input', 'input.keys', 'button'} (string list) info.category = 'input' (string) info.parent = '/org/freedesktop/Hal/devices/computer' (string) info.product = 'Video Bus' (string) info.subsystem = 'input' (string) info.udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input' (string) input.device = '/dev/input/event6' (string) input.product = 'Video Bus' (string) input.x11_driver = 'evdev' (string) input.xkb.layout = 'us' (string) input.xkb.model = 'evdev' (string) input.xkb.rules = 'base' (string) input.xkb.variant = '' (string) linux.device_file = '/dev/input/event6' (string) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'input' (string) linux.sysfs_path = '/sys/devices/LNXSYSTM:00/device:00/PNP0A03:00/device:01/LNXVIDEO:00/input/input6/event6' (string) I though it is weird if a keyboard layout is assigned to a probably an S-video or VGA output from my laptop. Why is it announcing 'input.keys'? Thanks, Martin _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg