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.