It should be said that X implements auto-repeat out of necessity. While
the kernel can report key down and up events, its further interpretation
of those events is not appropriate. Many combinations of events are
possible, such as keyboard plus mouse, and this precludes the kernel
from providing a full interpretation. It would be wrong for it to even
try. X is the proper place to implement auto-repeat for X.
--