Colemak has mapped capslock to backspace. But when I press and hold down capslock it won't auto-repeat backspace. I only see this with xorg hotplugging. When I disable hald and so stop hotplugging, and instead configure the keyboard layout in xorg.conf then the capslock works correctly.
Would you please do "xkbcomp :0 -xkb out.xkb" twice - once with hotplug, once without it - and attach resulting files?
Argh, sorry. It does not work with a static configuration either. Also, both out.xkb files are identical.
Created attachment 17072 [details] Output of requested command.
I can reproduce it. Yes, your configuration looks right. Even changing type= "FOUR_LEVEL", symbols[Group1]= [ BackSpace, BackSpace, BackSpace, BackSpace ] to symbols[Group1]= [ BackSpace ] does not help. May be it is something in the driver...
(In reply to comment #4) > does not help. May be it is something in the driver... it's not in the driver, the caps lock key doesn't seem to repeat in hardware, and xkb is required to autorepeat. The autorepeat flag isn't set for the key though hence why it doesn't do anything. Setting the flag manually in gdb causes autorepeat to work fine. So the question is - what is the magic xkb flag to set the autorepeat behaviour for a given key?
On Sun, Jun 22, 2008 at 06:15:30AM -0700, bugzilla-daemon@freedesktop.org wrote: > So the question is - what is the magic xkb flag to set the autorepeat behaviour > for a given key? btw. "xset r 66" fixes the issue here, but I still don't know how to get that into the keyboard layout by default.
(In reply to comment #6) > btw. "xset r 66" fixes the issue here, but I still don't know how to get that > into the keyboard layout by default. That doesn't work here. Still no autorepeat.
I was wrong. CapsLock repeat is stopped in the driver, PostKbdEvent() to be precise. Reassigning to evdev.
(In reply to comment #8) > I was wrong. CapsLock repeat is stopped in the driver, PostKbdEvent() to be > precise. Reassigning to evdev. http://cgit.freedesktop.org/xorg/driver/xf86-input-evdev/tree/src/evdev.c?id=1f641d75edba7394201c1c53938215bae696791b#n261 Either KEY_CAPSLOCK should be removed from that condition - or #ifdef should be changed. Do not know what is right though.
(In reply to comment #9) > http://cgit.freedesktop.org/xorg/driver/xf86-input-evdev/tree/src/evdev.c?id=1f641d75edba7394201c1c53938215bae696791b#n261 > > Either KEY_CAPSLOCK should be removed from that condition - or #ifdef should be > changed. Do not know what is right though. if you look at the #if condition, that's only for servers 1.5. 1.6 and later discard _all_ repeat events from the kernel because we soft-repeat them in the server. so the problem here is in the server (XKB somewhere).
commit 64237697994871adfcf4905b5784e75cd7281579 Author: Peter Hutterer <peter.hutterer@who-t.net> Date: Thu Jan 13 12:20:38 2011 +1000 xkb: after making changes to the xkb ctrls, copy them back into kbdfeed.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.