Faster key repeat on Mac for gaming
If a game reads the keyboard as text — a roguelike where you tap a direction to step, an emulator, a browser game, a menu you scroll with the arrow keys — then macOS's key-repeat rate decides how fast a held key fires, and the stock setting feels mushy. Drag the two Keyboard sliders to their fastest positions, or set KeyRepeat and InitialKeyRepeat in Terminal, then log out so every app picks up the change.
Where key repeat actually helps a game
This is worth being precise about, because it doesn't touch every game. Real-time action titles read the raw key state — holding W means "keep moving forward," and the engine handles that continuously, so the OS repeat rate is irrelevant there. Key repeat only matters when a held key is meant to fire the same input again and again, exactly like a held letter typing into a document:
- Roguelikes and turn-based games — NetHack, Cataclysm: DDA, Brogue, Dwarf Fortress — where each press is one step or one turn.
- Emulators and text/menu-driven games that treat arrow or WASD keys as discrete key events.
- Any long menu, inventory, or map you scroll by holding a direction.
- Chat and console input inside a game, where holding Delete clears a line.
For those, a slow repeat is the difference between one crisp step per tap and a laggy shuffle. Speeding it up makes the keyboard feel responsive without touching the game's own settings.
Max out the sliders first
- Open System Settings → Keyboard.
- Drag Key Repeat all the way to Fast.
- Drag Delay Until Repeat all the way to Short.
- Log out and back in so the change takes full effect.
These two sliders sit at the top of the Keyboard pane on macOS 13 Ventura, 14 Sonoma, and 15 Sequoia. "Fast" plus "Short" is the quickest combination the graphical settings will let you choose — for most games it's plenty.
Push past the slider in Terminal
The slider's fastest notch corresponds to specific numbers. Setting them directly does the same thing and lets you go lower later:
# fastest values the slider offers
defaults write NSGlobalDomain KeyRepeat -int 2
defaults write NSGlobalDomain InitialKeyRepeat -int 15
# undo — restore the macOS defaults
defaults delete NSGlobalDomain KeyRepeat
defaults delete NSGlobalDomain InitialKeyRepeat
KeyRepeat is the gap between repeats and InitialKeyRepeat is the pause before repeating begins — both counted in roughly 15ms units, so lower is faster. If 2 still isn't snappy enough for a fast roguelike, KeyRepeat -int 1 is the next step down. Log out and back in after any change; apps read the value when they launch.
Mainspring turns key repeat into a labelled slider you can drag, preview, and reset — one of 90+ hidden macOS settings it exposes as reversible toggles, so you can tune your Mac for games without memorising defaults commands.
Signed & notarized by Apple · 1-day free trial · $29 once
One more thing that fakes a slow keyboard
If holding a letter key pops up an accent picker instead of repeating, that's press-and-hold, not key repeat — and it will make WASD feel broken no matter how fast you set the rate. See how to disable press-and-hold accents on Mac to make held keys repeat cleanly.