Setting different keypress rate for individual keys?

I think the answer to your question is no, there is no way to achieve this short of modyfying the X.org sources.

Here is an explanation why xset won't work; I am creating an answer because it corresponds to comments found in both the OP and the answer above.

xset r has several alternative ways of being called. Mutually exclusive, that is:

xset r 22

..will turn the repeating for keycode 22 (backspace) on, while xset -r 22 will turn it off.

Alternatively, it is possible to specify keyboard rates, but only for all keys:

xset r rate [num1 [num2]]

You cannot combine the two.

As for the 08 / 22 confusion: 08 is the ASCII code for the ASCII character backspace, and 22 is the X windows keycode for the particular physical key.

Unfortunately, the two settings (rate / delay and per-key repeat on-off) are handled by two different X extensions:

  • "rate/delay" is handled by the XF86Misc extension. xset changes the rate / delay using function XF86MiscGetKbdSettings( display, values ). The values XF86MiscKbdSettings structure contains only fields for repeat rate and delay (and two others of no importance here), and there is no way of applying it but general.
  • the "per key on-off" is controlled by the XKB extension. The XKB extension allows to control selected keys, but the structure that holds information on these keys only contains a field that can take one of three values: default, no repeat, repeat.

In short, this seems to be impossible to achieve in the current X.org setup.