I know how to set the key repeat rate using System Preferences > Keyboard but it looks that the fastest settings is not enough.

Is there any way to speed up even more?

I do not know if others encountered the same issue, but I'm using a MacBook Pro, model 2010.

  • Good question! I found that keyboard repeat rate seemed to be the factor that was causing me to experience bad vim scrolling & rendering performance in macOS; see my comment on GitHub – Bradford Larsen Sep 7 at 0:57
up vote 154 down vote accepted

You can also change the preference keys directly:

defaults write -g InitialKeyRepeat -int 10 # normal minimum is 15 (225 ms)
defaults write -g KeyRepeat -int 1 # normal minimum is 2 (30 ms)

The changes aren't applied until you log out and back in. KeyRepeat can't be set between 2 (30 ms) and 1 (15 ms) though.

I also use KeyRemap4MacBook. I've set the repeat rates to 40 ms and the initial repeat rates to 150 ms.

  • 2
    I can't believe it took me so long to look for the answer. This is amazing. Also, I did not have to log out and back in with Yosemite. – SgtPooki Jan 15 '16 at 0:35
  • 9
    Regretting the wasted time of a decade. 😂 – nehemiah May 31 '16 at 4:20
  • 4
    Looks like I had to do this again after upgrading to macOS Sierra. – guaka Oct 16 '16 at 17:22
  • 4
    How do you determine how many milliseconds a value is? Are they just 15ms multiplied by the defaults value? How did you determine that, or is it documented somewhere? – bratsche Jan 23 '17 at 19:53
  • 6
    Make sure you don't set InitialKeyRepeat to a rate that is too fast. I experienced an issue where suddenly every key press caused every key to double the input. For example, pressing the "a" key once would input "aa". This effectively made it impossible to login as I was unable to input my password correctly. I believe I was able to get around the issue by booting in safe-boot mode, I revisited this page by going through my browser's history, selecting and pasting the command defaults write -g InitialKeyRepeat -int 10 into iTerm and restarting the Mac. – CarlosA Oct 4 '17 at 17:36

I just discovered that I had KeyRemap4MacBook installed and inside this application you have lots of low level settings for key repeat.

Now I'm happy with 400ms initial repeat time and 20ms repeat wait.

  • I have the same problem on OSX Lion on an iMac: the max repeat speed in System Preferences > Keyboard is insufficient (I use vim where fast repeated keystrokes really speed up navigation - but the faster speed is also useful in browsers). Thx for the KeyRemap4MacBook tip - works great. – kfmfe04 Jan 24 '12 at 12:08
  • 7
    This app has been renamed Karabiner and the options for Key Repeat are currently in the top row of tabs under "Key Repeat" between "Change Key" and "Status Message". Works great, was able to reduce it too far and bump it back up to sanity. – here Sep 15 '14 at 17:53
  • 1
    Does Karabiner still have this function? I can't find it anywhere. There's no "Key Repeat" tab. – Steve Bennett Mar 8 at 1:55
  • OIC it existed in Karabiner, but not in Karabiner Elements. But Karabiner doesn't seem to have any effect on Sierra. – Steve Bennett Mar 8 at 1:59

Old post, but this may help someone: If you are using the "Karabiner app" (https://pqrs.org/osx/karabiner/) which is a third party app commonly used to remap keys (or make OS X keyboard mimic some of Windows keyboards behaviors) it will bypass your OS X configurations.

If you are using it, to increase your keyboard rate you should go to the app and on the second tab ("Key Repeat") you'll find the option Repeat Rate. Changing that will render immediate effect and, as far as I can tell, it's the only way to get the repeat rate changed when using this app.

@user495470's answer is great for native apps, but for whatever reason, it appears to have messed up key repeat for me in XQuartz windows. To work around the issue, I initially ran this in the terminal:

xset r rate <initial wait> <number of repeated strokes per second>

Leaving off the last 2 arguments will reset the system defaults.

I read that you have to run this command every time you run XQuartz anew, but when I put it in my login script, it caused the system to hang on shutdown (until I killed the hung xset commands) and on startup, so I discovered that a better way to change the key repeat setting is to first disable the little bubble menu that appears above a typed character upon press & hold, e.g. hold down the a key and you are presented with a bubble containing alternate 'a' characters with various umlauts, accents, etc..:

defaults write -g ApplePressAndHoldEnabled -bool false

Then run the key repeat commands:

defaults write -g InitialKeyRepeat -int 10 # normal minimum is 15 (225 ms)
defaults write -g KeyRepeat -int 1 # normal minimum is 2 (30 ms)

If you do it this way, key repeats will work in XQuartz windows without needing to run xset r # #.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.