251

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.

2

4 Answers 4

377

You can also change the preference keys by running the following in Terminal:

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.

21
  • 40
    Regretting the wasted time of a decade. 😂
    – nehem
    Commented May 31, 2016 at 4:20
  • 4
    Looks like I had to do this again after upgrading to macOS Sierra.
    – the
    Commented Oct 16, 2016 at 17:22
  • 5
    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
    Commented Jan 23, 2017 at 19:53
  • 8
    one note you might miss in the answer - log out/in or restart your machine to have changes take effect
    – ryantuck
    Commented Apr 4, 2017 at 19:22
  • 40
    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.
    – ONMNZ
    Commented Oct 4, 2017 at 17:36
27

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.

6
  • 11
    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
    Commented Sep 15, 2014 at 17:53
  • 2
    Does Karabiner still have this function? I can't find it anywhere. There's no "Key Repeat" tab. Commented Mar 8, 2018 at 1:55
  • 1
    OIC it existed in Karabiner, but not in Karabiner Elements. But Karabiner doesn't seem to have any effect on Sierra. Commented Mar 8, 2018 at 1:59
  • 5
    Came here to confirm that Karabiner "Elements" (the latest version) does not support setting the key repeat rate, as it used to. See this. Commented Dec 13, 2019 at 18:36
  • 2
    KeyRemap4MacBook (or the renamed Karabiner) no longer supports it. The accepted solution is the best way. Remember to log off
    – Dio Phung
    Commented Apr 8, 2020 at 23:41
11

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.

4
1

@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 # #.

You must log in to answer this question.

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