A handy quick tool for blocking mechanical keyboard chatter.
A handy quick tool for blocking mechanical keyboard chatter.
Keyboard chatter blocker is a quick handy tool to block mechanical keyboard chatter on Windows PCs.
Click here for the steps to get it running.
Talk to us on Discord @ https://discord.gg/eggWVJt
Mechanical keyboards sometimes have a problem known as "chatter", wherein certain keys will seem to repeat keystrokes two or more times very rapidly when only pressed once.
So solution number one is obvious: just replace the broken key switch (or the entire keyboard).
Solution number two is: Well, there are existing software solutions, that block very rapidly repeated keystrokes to fix the chatter problem. I've been using "Keyboard Chattering Fix v 0.0.1", Copyright in 2014 to the "Keyboard Chattering Fix Project"... I can't find an appropriate source link for this project, likely it was just a one-off creation in 2014 without updates and there's not much more to it. I've also come across "Keyboard Unchatter" by ZoserLock here on GitHub at ZoserLock/keyboard-unchatter.
Replacing keyboard switches or entire keyboards, of course, can be difficult to do and tends to cost money. A software solution may be preferrable to many people.
Both of the mentioned software projects projects seem quite... decent, but they lack some critical functionality. In my case, the "h" key has a chatter problem (when I type "the", it types "theh"). The chatter is in the 100ms range... and I really don't want to block all keystrokes under 100ms (I'm a fast typer). Unfortunately, these existing options don't have a solution for me... so, instead, I've made a solution that fits my case and present it here to the public. (Also, with all due respect to the authors of the mentioned projects: I can't find source code to one, and the source code for the other isn't particularly clean or well written.)
I've taken a similar approach to the software solutions mentioned above, but with the notable extra feature of: you can configure the chatter threshold on a per-key basis. So I can have a high threshold for my 'h' key, and a lower threshold for the rest of my keyboard. Fixes the chatter without getting in the way! Anyone who uses this project will be treated to a rather straightforward set of GUIs to control this (or you can edit a config file, if that's your preference). (Also: I've made a point of making very clean clear code for this project, and have it under the MIT license, as I want it to be something anyone can fork and feel they've made a good decision forking instead of remaking.)
choco install keyboard-chatter-blocker and launch it via KeyboardChatterBlocker.exe[X] for it under "Remove".While the default global threshold covers most cases out of the box, the best strategy for getting your blocker settings just right is easy:
Global Chatter Threshold to 0.Configure Keys tab, click Add Key, add your specific keyG 100 [X] -- double-click the 100 under Chatter Threshold to edit the value. For now, set it to 300Chatter Log tab so we can monitor the keyboard chatter, leave this window open52, 73, 64, 42, the highest value is 73 but with that variance range we'll want to round up to 100 to be safe.Configure Keys, double click the value under Chatter Threshold, and set it to our selected value (100 in this example). We want this value to be more than your chatter will ever be, but still low enough that you can't accidentally just type so fast it gets blocked.After following the above step by step, your blocking will exactly only cover your chatter and nothing more.
Enabled box to regain control and fix that, or, if needed, use Task Manager to kill the blocker program, and then edit the config file (see config notes below).wheel_change key detector: under Configure Keys -> Add Key -> special keys dropdown -> select Mouse Wheel Change, if you have a counter-scroll/wheel bounce issue similar to what's described in issue #17.Packet and Back as keys with zero chatter to prevent conflict. Other software may need the same or a similar trick.If you're the type of person to care about the config file and want to edit it manually, The config file is literally just a config.txt file in the same folder as the executable (unless you installed into Program Files, in which case the config file is at %localappdata%/KeyboardChatterBlocker). Each line is one setting to apply. Prefix a line with # to make it a comment. All uncommented (and non-blank) lines are settings, of the form name: value. The following settings are available:
is_enabled: Set to true to be activated as normal, or false to turn the chatter protection off.global_chatter: Set to the time (in ms) for the default global keyboard chatter threshold.minimum_chatter_time: Set to the time (in ms) for the minimum allowable chatter. This is a workaround option for bugged inputs that "chatter" with a 0ms hit or similar, to exclude them from chatter detection. If set to 0, this setting does nothing.hide_in_system_tray: Set to true to make the program hide in the system tray at start, or false to load as a visible GUI app.key.: (for example, key.H) set to the time (in ms) for that specific key's keyboard chatter threshold.auto_disable_programs: Set to a list of executable names (case insensitive, without the .exe) separated by slashes (like some_video_game/other_game) that will cause the chatter block to automatically disable whenever that program is open.auto_disable_on_fullscreen: set to true to auto-disable the chatter block when any application is open in fullscreen - see also #26. This prevents interrupting controls in games, but won't be perfect for preventing online game bans (eg if you alt-tab it will hook the keyboard again and some game anticheats may detect that).hotkey_toggle, hotkey_enable, hotkey_disable, hotkey_tempenable, hotkey_tempdisable, hotkey_showform: set to a key combo.control, alt, win, shift, and any valid key separated by +.control + a, win + alt + b, shift + d1.control often won't work as they often get reserved by other applications (or Windows itself).hotkey_disable: win + shift + pause will allow you to hold those three keys together at any time to immediately disable the chatter blocker).toggle, enable, and disable of course will change the enabled state of the key blocker.tempdisable and tempenable pair allow for disabling in a temporary way (ie, don't affect or override the main application setting, useful for things like AutoHotKey scripts).showform will directly hide the form to system tray or bring it bacNo open issues yet, or sync has not completed.