46

It seems there is already an accepted answer for Windows 7 here. Has anyone found a way to increase the keyboard repeat rate for Windows 10 beyond the Keyboard Properties control panel?

My settings are maxed out on the keyboard control panel as you can see in the following linked image, yet the repeat rate is far too slow for me.

Keyboard Properties

I've also tried modifying my registry keys as mentioned in the previous answer, but after logging out and back in, Windows sets the registry entries to all zeros, and enables Filter Keys. The Filter Keys can be turned off, but this doesn't seem to allow for faster-than-allowed repeat speeds.

9
  • Can you tell me how fast it is now? Weird test "Please type this phrase into the notepad like this" then size the notepad horizontally to fit that ~50 charachters. Then fire up a seconds hand or stop watch, hold the .a key unshifted for 15 seconds , and tell how many rows you get? It should not matter much what font or size you use, it did not here. I get about 11 rows. Why? because that would be easy, requires no program, and is platform independant.
    – Psycogeek
    Commented Mar 29, 2016 at 7:04
  • 1
    Almost 9 rows full of a's, after 15 seconds of holding the a key down at 50 columns wide. I should mention I am using Windows 10 via Bootcamp on an Mac Book Pro. I've heard these things can be hardware dependent, but it's strange that Windows 10 does not allow a registry override like Windows 7. Commented Mar 30, 2016 at 0:40
  • 1
    Ok, so that helps to know , it is not really slow, or having problems, you just want it really fast.
    – Psycogeek
    Commented Mar 30, 2016 at 10:18
  • 2
    +1 This is where Windows should learn from KDE. Not only do the sliders go far enough, you can actually enter whatever crazy values you want… This is not hardware dependent, for sure. Commented Nov 12, 2016 at 12:21
  • 1
    @joeking The default values come from the keyboard hardware as the standard keyboard controllers can only be programmed within those margins - they generate repeat presses as programmed - of course the OS is free to disregard those signals from the keyboard and generate keys until the key-release scancode is received, as the X keyboard driver does by default, and Windows does when accessibility settings are enabled
    – Dagelf
    Commented May 3, 2021 at 6:11

2 Answers 2

35

To get around this you could use the "Filter Keys" feature in the Ease of Access center to speed it up. Of course backup your registry before doing this or at least back up the values so you can roll it back if it isn't doing what you want it to do. Go into regedit.exe navigate down to HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response and update your values. Reboot for the changes to be seen.

[HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response]
"AutoRepeatDelay"="200" 
"AutoRepeatRate"="6" 
"DelayBeforeAcceptance"="0" 
"Flags"="59" 
"BounceTime"="0"
7
  • Does repeat rate go faster the higher the number is? Commented Sep 15, 2018 at 18:49
  • 11
    Repeat rate is faster when AutoRepeatRate is smaller (I guess it is a delay in ms rounded up to the 64Hz interrupt heartbeat of Windows: 15.625ms). And instead of reboot it's enough to sign out + log in
    – robert4
    Commented Mar 29, 2019 at 11:20
  • 1
    Great, thank you! Is there any documentation on the other things, like BounceTIme and Flags?
    – lindhe
    Commented Jul 5, 2022 at 13:38
  • 2
    This is highly underrated.
    – Nico
    Commented Apr 16, 2023 at 16:49
  • 1
    @Mojtaba Golestani No any explanation on each works? Commented May 5 at 1:32
1

I use the following PowerShell script to enable and configure the FilterKeys accessibility feature in the registry:

Set-Location "HKCU:\Control Panel\Accessibility\Keyboard Response"

Set-ItemProperty -Path . -Name AutoRepeatDelay       -Value 200
Set-ItemProperty -Path . -Name AutoRepeatRate        -Value 30
Set-ItemProperty -Path . -Name DelayBeforeAcceptance -Value 0
Set-ItemProperty -Path . -Name BounceTime            -Value 0
Set-ItemProperty -Path . -Name Flags                 -Value 47

You can also configure these in regedit.exe manually: regedit.exe screenshot of the Keyboard Response key, expanded


Explanation

These values correspond to the FILTERKEYS structure from <winuser.h> in the win32 API:

AutoRepeatDelay -> iDelayMSec:

Specifies the length of time, in milliseconds, that the user must hold down a key before it begins to repeat.

AutoRepeatRate -> iRepeatMSec:

Specifies the length of time, in milliseconds, between each repetition of the keystroke.

DelayBeforeAcceptance -> iWaitMSec:

Specifies the length of time, in milliseconds, that the user must hold down a key before it is accepted by the computer.

BounceTime -> iBounceMSec:

Specifies the length of time, in milliseconds, that must elapse after releasing a key before the computer will accept a subsequent press of the same key.

Flags -> dwFlags:

A set of bit flags that specify properties of the FilterKeys feature. The following bit-flag values are defined:

Value: FKF_FILTERKEYSON, 0x00000001 - Meaning: The FilterKeys features are on.

Value: FKF_AVAILABLE, 0x00000002 - Meaning: The FilterKeys features are available.

Value: FKF_HOTKEYACTIVE, 0x00000004 - Meaning: The user can turn the FilterKeys feature on and off by holding down the RIGHT SHIFT key for eight seconds.

Value: FKF_CONFIRMHOTKEY, 0x00000008 - Meaning: Windows 95/98, Windows 2000: A confirmation dialog box appears when the FilterKeys features are activated by using the hot key.

Value: FKF_HOTKEYSOUND, 0x00000010 - Meaning: If this flag is set, the computer plays a siren sound when the user turns the FilterKeys feature on or off by using the hot key.

Value: FKF_INDICATOR, 0x00000020 - Meaning: Windows 95, Windows 2000: A visual indicator is displayed when the FilterKeys features are on.

Value: FKF_CLICKON, 0x00000040 - Meaning: The computer makes a click sound when a key is pressed or accepted. If SlowKeys is on, a click is generated when the key is pressed and again when the keystroke is accepted.


Now, to clarify the meaning of the values I used:

  • AutoRepeatDelay = 200: Once the key is considered "pressed", you must hold down the key for 200ms for it to start repeating.
  • AutoRepeatRate = 30: Once the key starts repeating, Windows will repeat the key approximately once every 30ms, or 33 times per second.
    • Although, in my empirical tests, I don't get quite this many repeats per second, indicating that Windows may be slower than advertised. You'll want to tweak this value a bit lower than your desired actual repeat rate to achieve what feels right for you -- in my case, my desired value is 35ms, and a value of 30 is about right.
  • DelayBeforeAcceptance = 0: This keeps the "delay before acceptance" accessibility feature turned off, meaning that a key is considered "pressed" the instant you press the physical key.
  • BounceTime = 0: This keeps the "bounce time" accessibility feature turned off, meaning that you can press-and-release then re-press a key in rapid succession, and have those presses register as distinct key presses.
  • Flags = 47 (47 in decimal is 0010 1111 in binary):
    • 0x01 FKF_FILTERKEYSON = 1
      • This enables the feature. If this value were instead 0, none of these settings would take any effect.
    • 0x02 FKF_AVAILABLE = 1
      • I believe this works in concert with 0x01 to enable the feature.
    • 0x04 FKF_HOTKEYACTIVE = 1
      • This enables the "hold right-shift for 8 seconds" hotkey to toggle this FilterKeys feature.
    • 0x08 FKF_CONFIRMHOTKEY = 1
      • This causes Windows to prompt you if the hotkey is held down to enable the feature (which only happens if you first use the hotkey to turn the feature off, then use it again to turn it back on).
    • 0x20 FKF_INDICATOR = 1
      • This makes Windows display an indicator in the task bar, showing that FilterKeys is enabled. The following screenshot is from Windows 10: FilterKeys-enabled indicator in Windows 10 taskbar

        This indicator is not showing up for me in Windows 11, however, indicating that it may have since been removed.

...and the rest of the Flags values are 0, or off.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .