When an X11 client reads X11-core events of type KeyPress and KeyRelease, a held-down key will result in a series of synthetic release/press events to make it look like the key was pressed multiple times. The initial delay and repeat rate are configured in the X server by xset and/or xkbset. Also, not all keys auto-repeat.
When that same X11 client reads XInput2-extension events of type XI_RawKeyPress and XI_RawKeyRelease, a held-and-released key results in exactly 2 events, no matter how long it was held. The XInput2 server extension ignores the server auto-repeat settings. It is unreasonable to expect an X11 client to hack auto-repeat by itself. This is a server-side configuration issue. Also this is far from the only problem with XInput2's keyboard event handling. See the comments in xscreensaver/driver/xinput.c for a laundry list of its bugs. -- Jamie Zawinski https://www.jwz.org/ https://www.dnalounge.com/