OK, so the Cherry MX board 1.0 keyboard arrived from CPC. Now, how do I get repeat key presses under xubuntu? Basically I need to be able to hold backspace down, and to then watch what I mistyped disappearing.
Looking at the x events with xev, it appears that the source problem might be n-key rollover. If I press a key (other than the ctrl/alt/shift modifiers), then I see a single keypressed event immediately followed by a keyrelease event at the same time.
KeyPress event, serial 34, synthetic NO, window 0x1e00001,
root 0x260, subw 0x0, time 2819916, (76,11), root:(1588,763),
state 0x0, keycode 33 (keysym 0x70, p), same_screen YES,
XLookupString gives 1 bytes: (70) "p"
XmbLookupString gives 1 bytes: (70) "p"
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x1e00001,
root 0x260, subw 0x0, time 2819916, (76,11), root:(1588,763),
state 0x0, keycode 33 (keysym 0x70, p), same_screen YES,
XLookupString gives 1 bytes: (70) "p"
XFilterEvent returns: False
With my old keyboard I see a succession of keypresses/keyreleased events at the relevant interval (100ms in this example)
KeyPress event, serial 39, synthetic NO, window 0x1e00001,
root 0x260, subw 0x0, time 3084045, (96,-9), root:(1635,765),
state 0x0, keycode 21 (keysym 0x3d, equal), same_screen YES,
XLookupString gives 1 bytes: (3d) "="
XmbLookupString gives 1 bytes: (3d) "="
XFilterEvent returns: False
KeyRelease event, serial 39, synthetic NO, window 0x1e00001,
root 0x260, subw 0x0, time 3084145, (96,-9), root:(1635,765),
state 0x0, keycode 21 (keysym 0x3d, equal), same_screen YES,
XLookupString gives 1 bytes: (3d) "="
XFilterEvent returns: False
KeyPress event, serial 39, synthetic NO, window 0x1e00001,
root 0x260, subw 0x0, time 3084145, (96,-9), root:(1635,765),
state 0x0, keycode 21 (keysym 0x3d, equal), same_screen YES,
XLookupString gives 1 bytes: (3d) "="
XmbLookupString gives 1 bytes: (3d) "="
XFilterEvent returns: False
KeyRelease event, serial 39, synthetic NO, window 0x1e00001,
root 0x260, subw 0x0, time 3084215, (96,-9), root:(1635,765),
state 0x0, keycode 21 (keysym 0x3d, equal), same_screen YES,
XLookupString gives 1 bytes: (3d) "="
XFilterEvent returns: False
Is there a workaround, or does the keyboard have to be returned?
This is some xorg/xinput fuckery. Try issuing
$ xset r on
If that doesn't work try:
$ xkbset repeatkeys
May have to install xkbset.
There should be something in the keyboard settings which turns this on. The keyboard is 100% fine I'm sure.
Edit: Two important debug steps:
1. See if it works in the display manager or not. If it dies in the desktop session afterwards then it's related to that.
2. It's ALWAYS worth disabling the display manager, rebooting (systemd is shit) installing twm as a window manager and starting a session with startx with that as that doesn't have any gnome keyboard fuckery at start up in it.
Edit 2: actually doing some research this probably is gnome fuckery. Hit:
$ gsettings set org.gnome.desktop.peripherals.keyboard repeat true
Please note this shit is why I still use windows on the desktop