23 days ago 18 days ago Operating Systems Share

Fix Repeating Keys (Chatter) On Mechanical Keyboards

Mechanical keyboards have become more popular than ever. Yet many are prone to chatter —keystrokes registering more than once per keypress. That is, unwanted repeated letters as you type.

The basic problem is that all mechanical keyboards chatter in the sense of generating multiple key presses. These multiple key presses are usually removed by the firmware in the keyboard. 

However there are cases where the firmware does not fully compensate for the keyboards native chatter. 

Since so many mechanical keyboards are sold as "gaming" keyboards, there is an incentive for manufacturers to boast about how fast the keyboard can register key presses using terms like "rapid trigger" and so on.

That is, there is an incentive to push the limits of the debounce algorithms used to eliminate keyboard chatter.

The problem then is what happens when other factors like dirt, or aging of the key switches, etc. creates chatter that happens too fast for the standard firmware to detect. 

The result is unwanted key chatter.

There are many thousands of people in forums, and social media, and all over the internet describing things they've tried to fix their keyboards' chatter—cleaning, removing keys and cleaning underneath, vaccuuming, blowing compressed air, re-soldering connections, updating firmware, and more. Also many people have got their keyboards replaced under warranty, often to find that the same problem eventually occurs again.

Many of these methods do help... sometimes.

Yet the root cause of the problem seems to be that mechanical leyboards naturally create some amount of chatter—and that the software and/or firmware which reads the keypresses has to compensate for this.

Fortunately, there are features in most modern operating systems which can (mostly) solve the problem of mechanical keyboard chatter.

How Do Software Algorithms Remove (Fix) Keyboard Chatter

Keyboard chatter is removed by software simply by the system ignoring multiple presses of the same key that occur within a very short time interval. 

Usually when keyboard chatter is a problem, it's because this time interval has been set too short, and the keyboard is sometimes generating repeated keypresses/keystrokes a little slower than the current software (&/or firmware) is filtering out. 

Basically, if the time interval is too short, keys will "bounce" (i.e. chatter, i.e. repeat more than once for one press of the key) — and, if the interval is too slow, then when you want to press the key more than once, it won't let you do it quickly. For example if you type "install" quickly you will get "instal", "wheel" will become "whel", and so on.

Fixing Keyboard Chatter on Windows

Recent editions of Microsoft Windows have a setting to remove keyboard chatter. You can find it by searching for "bounce" in the Windows search box, which takes you to an option called "Filter Keys". This is found in Options > Accessibility > Keyboard, where there is a toggle switch to turn filter keys on or off. Next to the toggle switch is a menu option which takes you into the Filter Keys settings menu. In this menu, the option you want is called 

Ignore unintended keystrokes (bounce keys)

The problem here is that the options for speed are much too slow. The minimum on my version of Windows 11 is 0.3 seconds, which is 300 milliseconds. You want something like 20-50 milliseconds. 

Registry fix for keyboard chatter in Windows 11

This works in Windows 11 and perhaps Windows 10.

  • Turn on the Filter Keys option as above, and exit the Settings.
  • Run Regedit (you can press Windows-R, then type regedit.exe). Note that you don't have to run it as Administrator.
  • Use the drop-down menu to navigate to HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response.
  • Set values as below:
  • AutoRepeatDelay: 500 (this is in milliseconds, you can make it shorter to reduce how long a key must be held down to auto-repeat)
  • AutoRepeatRate: 50 (this can be faster if you prefer, 50ms is reminiscent of an old-school computer from the 80s.
  • BounceTime: 35 (this you can vary depending on taste, 35 seems good for me)
  • Log off your Windows user and log on again. You can also restart the computer, but all you need to do is log off and on again to make Windows read the values from the registry as above.

The only problem I've found so far with this method is that if you have it all nicely working, and then go into the Settings/Filter Keys menu again, it will reset the Bounce Time to a much slower value (presumably it's the 300 milliseconds that Microsoft seems to think is the fastest value anyone would want to type at). Typing at a speed of 300 milliseconds would be ridicuously slow for most people. If this happens, you can go back into regedit and re-enter the values you prefer (such as the ones above). 

Fixing Keyboard Chatter on Linux

On GNOME desktop this worked beautifully for me. Run these two commands in a terminal window (as your ordinary user):

gsettings set org.gnome.desktop.a11y.keyboard bouncekeys-enable true
gsettings set org.gnome.desktop.a11y.keyboard bouncekeys-delay 35

Where the "35" is the number of milliseconds of debounce time (i.e. the shortest delay between pressing the same key that will register as two separate keypresses).

More to follow...

Byte.Yoga Homepage - Australian Cyber Security Web Magazine

Share This Page

If you liked this page, please share it with others! You can use the links to share on Facebook, Twitter, LinkedIn, Pinterest, and Email. Ther is also an RSS feed to get updates for the website.