Frustrated that OS X doesn't have a simple software keyboard debouncer. Here's my hack.
Go to file
Paul David 4d87ac4e8e Add install target.
* GNUmakefile (install): Put in /usr/local/bin.
2019-07-03 21:14:49 +10:00
.gitignore Initial import from SO 2016-10-31 21:12:58 +11:00
debounce.m debounce.m: Neaten up comments. 🌻 2019-07-03 21:01:35 +10:00
GNUmakefile Add install target. 2019-07-03 21:14:49 +10:00
LICENSE Initial commit 2016-10-31 20:36:26 +11:00
README.md README.md: Add instructions. 💡 2019-07-03 21:01:51 +10:00

debounce-mac

This is for those annoying moments when you wished that macOS had XkbSetBounceKeysDelay like Linux does.

This is a bog-simple keyboard event tap that intercepts any (identical) keystrokes that happen within a configurable time window. Magic. See here for the genesis story.

Credit where credit is due: i mostly stole this idea and sample code off another StackOverflow answer.

How do?

You should be able to make this work with something like the following:

$ make
$ sudo ./debounce

It needs root because it intercepts keystrokes.

Accessibility / permissions

You might get an error something like the following, even when running as root.

$ sudo ./debounce
2019-03-03 10:47:02.194 debounce[59588:499245] Initializing an event tap.
2019-03-03 10:47:02.205 debounce[59588:499245] Unable to create event tap.  Must run as root or add Accessibility privileges to this app.
2019-03-03 10:47:02.205 debounce[59588:499245] No Event tap in place!  You will need to call listen after tapEvents to get events.

@DanGrayson kindly alerted me to the fact that on modern macOS, you'll need to enable universal accessibility features to let this work. It appears that you'll need to go to System Preferences > Privacy > Accessibility, and grant Terminal.app permission, not the debounce binary as you might expect.