Keyboard / 06

Repeat rate.

Hold any letter key down. We log the first keydown, then count how long until repeats begin and how many repeats arrive per second. These are OS-level settings, not keyboard hardware.

Notes

On Windows: Control Panel → Keyboard → Speed sets repeat delay (250 ms–1000 ms) and repeat rate (~2.5–30 cps). On macOS: System Settings → Keyboard. On Linux: depends on your DE. Browser receives DOM keydown events with `repeat: true` for the autofire — we never preventDefault, so this matches what apps actually see.

Hold any key here
—
Click first to focus, then press and hold a letter
Initial delay
—
time to first repeat
Repeat rate
—
keys / second
Repeats observed
0
Verdict
hold a key to see
Frequently asked

What are key repeat delay and key repeat rate?

Repeat delay is how long you must hold a key before the OS starts auto-firing it — typically 200 to 1000 ms. Repeat rate is how fast it fires after that delay, measured in characters per second or as an interval — typically 20 to 50 cps (20 to 50 ms per repeat). The two are independent OS settings: a short delay with a slow rate gives quick start but gentle repetition; a long delay with a fast rate avoids accidental repeats but burns through characters once you commit. DeviceCheckOnline measures both live by timing the keydown stream when you hold a key.

How does this tool measure my settings?

Hold a single key. The first keydown event is the physical press. After your OS-configured delay, the OS begins issuing synthetic keydown events at the repeat rate (the keyup is held until you actually release). DeviceCheckOnline records the timestamp of the first repeat event minus the original press — that is your delay — and then averages the intervals between subsequent repeats — that is your rate. Release after a couple of seconds of held repetition to give the averager a stable sample.

How do I change the repeat rate on Windows, macOS and Linux?

Windows: Control Panel > Keyboard > 'Repeat delay' and 'Repeat rate' sliders. For values beyond the slider range, edit the registry key Control Panel\Keyboard (KeyboardDelay 0-3, KeyboardSpeed 0-31) or use PowerToys. macOS: System Settings > Keyboard > 'Key repeat rate' and 'Delay until repeat'. Beyond the UI, run 'defaults write NSGlobalDomain KeyRepeat 1' and 'InitialKeyRepeat 10' in Terminal then log out. Linux X11: xset r rate 200 30 (delay ms, rate Hz). Wayland: configured per compositor.

What is a good repeat setting for gaming or coding?

For typing and coding, a moderate delay (around 300 to 500 ms) with a fast rate (30 to 40 cps) gives precise single-key taps plus quick navigation when you hold arrow keys. For competitive gaming the repeat rate is usually irrelevant — most games read keydown/keyup directly and ignore autorepeat — but a long delay (1000 ms) avoids the OS injecting phantom repeats if your finger lingers. Vim users often crank both: 200 ms delay, 30+ cps for fast hjkl movement. There is no universal best; tune to your reflexes.

Why does my key repeat feel inconsistent?

Three common causes. First, focus changes: if the OS receives a focus event mid-hold, it can drop the repeat stream. Second, background CPU load: if a heavy process starves the input thread, repeats arrive late and bunched. Third, a chattering switch (see /keyboard/chatter) can fire extra keydown events that the OS interprets as a release-and-press, restarting the delay timer. If repeats stop unexpectedly mid-hold, check the keyboard's USB connection and run /keyboard/tester to verify the held-state is stable.

Does the keyboard itself control repeat rate?

No — repeat is generated by the operating system, not the keyboard. The hardware just sends one keydown when the switch closes and one keyup when it opens; the OS times the hold and synthesises the repeat events. Exceptions are programmable boards running QMK/VIA with custom hold-tap or auto-shift behaviours, and dedicated 'rapid trigger' analog keyboards that can re-trigger on minute travel changes. For 99% of keyboards, changing repeat means changing OS settings, not firmware.