39aldo39/klfc

Colemak example doesn't work on Debian GNU/Linux with X11

ilyad opened this issue · 1 comments

ilyad commented

I tried to generate colemak layout for X11 by
../klfc colemak.json altgr_colemak.json extend.json -o blah using pre-compiled binary package version 1.5.2 on Debian stable. Despite some warnings it went well. Then I executed ./run-session.sh in blah/xkb .Below is the error message printed by xkbcomp. After that I manually edited the generated file colemak: removed XF86ScrollRight and similar fixes, see the diff below after the error message. Then I tried run-session.sh again. The 6 first messages (2 x Internal error + 4 x Error) disappeared, but X Error of failed request.... remained the same.

Any idea what I did wrong?

xtoo:/home/ilya/klfc-1.5.2/examples/blah/xkb > ./run-session.sh
Internal error: Could not resolve keysym XF86ScrollRight
Error: Button must specify default or be in the range 1..5
Illegal button value 6 ignored
Error: Illegal action definition for <AD02>
Action for group 1/level 6 ignored
Internal error: Could not resolve keysym XF86ScrollLeft
Error: Button must specify default or be in the range 1..5
Illegal button value 7 ignored
Error: Illegal action definition for <AC02>
Action for group 1/level 6 ignored
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 135 (XKEYBOARD)
Minor opcode of failed request: 9 (XkbSetMap)
Value in failed request: 0x16430005
Serial number of failed request: 132
Current serial number in output stream: 138``xtoo:/home/ilya/klfc-1.5.2/examples/blah2/xkb > ./run-session.sh

diff --git a/klfc-1.5.2/examples/blah/xkb/symbols/colemak b/colemak.changed
index cdbd263..3ae703b 100644
--- a/klfc-1.5.2/examples/blah/xkb/symbols/colemak
+++ b/colemak.changed
@@ -21,8 +21,8 @@ xkb_symbols "basic" {
key.type[Group1] = "NONE_SHIFT_ALTGR_SHIFT+ALTGR_EXTEND_ALPHABETIC";
key <AD01> { [ q, Q, adiaeresis, Adiaeresis, Escape ] };
key.type[Group1] = "NONE_SHIFT_ALTGR_SHIFT+ALTGR_EXTEND_SHIFT+EXTEND_ALPHABETIC";
- key <AD02> { [ w, W, aring, Aring, XF86ScrollUp, XF86ScrollRight ],
- actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), PtrBtn(button=4), PtrBtn(button=6) ] };
+ key <AD02> { [ w, W, aring, Aring, XF86ScrollUp ],
+ actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), PtrBtn(button=4) ] };
key.type[Group1] = "NONE_SHIFT_ALTGR_SHIFT+ALTGR_EXTEND_ALPHABETIC";
key <AD03> { [ f, F, atilde, Atilde, XF86Back ] };
key <AD04> { [ p, P, oslash, Oslash, XF86Forward ] };
@@ -44,8 +44,8 @@ xkb_symbols "basic" {
actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), SetMods(mods=Alt) ],
vmods=Alt };
key.type[Group1] = "NONE_SHIFT_ALTGR_SHIFT+ALTGR_EXTEND_SHIFT+EXTEND_ALPHABETIC";
- key <AC02> { [ r, R, dead_grave, VoidSymbol, XF86ScrollDown, XF86ScrollLeft ],
- actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), PtrBtn(button=5), PtrBtn(button=7) ] };
+ key <AC02> { [ r, R, dead_grave, VoidSymbol, XF86ScrollDown ],
+ actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), PtrBtn(button=5) ] };
key.type[Group1] = "NONE_SHIFT_ALTGR_SHIFT+ALTGR_EXTEND_ALPHABETIC";
key <AC03> { [ s, S, ssharp, VoidSymbol, Shift_L ],
actions[Group1] = [ NoAction(), NoAction(), NoAction(), NoAction(), SetMods(mods=Shift) ] };

You didn't do anything wrong. It is a weird xkbcomp bug. I happens when:

  • the xkbcomp destination is set to the X11 display,
  • a key with a X11 function is modified (e.g. function keys, since they have XF86_Switch_VT_n on Control+Alt),
  • its type is changed,
  • the file with the definition of the type contains at least 7 types (!).

I thought it was fixed, but it is still there. I should probably open a bug report.

I added a workaround in 445aa85, which sets the destination of xkbcomp to a temp file. Note that installing the layout by executing install-system.sh and selecting it does work.