Shortcuts Without Reaching

Every keyboard shortcut on your Mac requires a modifier — Command, Shift, Control, Option. Those keys are tucked into the bottom corners of your keyboard, forcing your fingers off the home row dozens of times an hour. Over a full workday, that’s thousands of small reaches that slow you down and strain your hands.

Home row mods fix this by putting modifiers right under your fingertips. Tap a key normally and you get the letter. Hold it briefly and it becomes a modifier. Your hands never move — every shortcut is one fluid motion from the home row.

If you’re new to keyboard customization, read Keyboard Concepts first for background on dual-role keys and layers.


What are home row mods?

Every home row key gets a second job — tap for the letter, hold for a modifier. The layout is mirrored so both hands get the same modifiers:

Home row mod layout — tap for letter, hold for modifier

The result: any keyboard shortcut is one fluid motion. Hold F + press C = ⌘C (Copy). Hold A + press Tab = ⇧Tab (Shift-Tab). No reaching, no contortion.

Try it — click and release quickly, or click and hold

left hand
right hand

Getting started

  1. Open KeyPath and click the gear icon to open the inspector panel
  2. Go to the Custom Rules tab
  3. Enable the Home Row Mods pre-built rule
  4. Start typing normally

Screenshot — Home Row Mods pack detail in KeyPath

The defaults are tuned to feel natural right away. KeyPath automatically detects same-hand typing rolls (like “fd” or “jk”) and treats them as letters, not modifiers. It also suppresses modifiers during fast typing bursts. These protections mean misfires are rare out of the box — most users don’t need to change any settings.

Tip: Start by using home row mods only for shortcuts you already know (⌘C, ⌘V, ⌘Z). Once those feel natural, expand to new shortcuts.


Advanced settings

Once you’re comfortable with the defaults, these settings let you fine-tune how home row mods feel. Open the Home Row Mods rule’s settings to access these controls.

Typing Feel

KeyPath provides a slider to adjust the tap-hold threshold:

Screenshot

  • Slide toward “More Letters” for a longer tap window (fewer accidental modifiers)
  • Slide toward “More Modifiers” for quicker modifier activation

Start with defaults, then adjust one parameter at a time.

How tap-hold works

When you press a home row key, KeyPath watches how long you hold it. A quick tap produces the letter. A long press activates the modifier. The timing threshold is adjustable — see Typing Feel below.

F
 
 
 

Opposite-hand activation

Waiting for the full timeout on every keypress would make typing feel sluggish. KeyPath has a faster way: it watches which hand presses the next key. If you press a key on the other hand while holding F, it resolves immediately as a modifier — no need to wait for the timer.

left hand
D
F
 
 
right hand
J
K
 
 
 

This is enabled by default (On Press). The picker offers three modes:

  • Off — Any key press can trigger the hold action (classic tap-hold behavior)
  • On Press — Hold triggers when the other hand presses a key. Faster response, may misfire on fast same-hand rolls.
  • On Release — Hold triggers when the other-hand key is released. More forgiving for fast typists.

Fast typing protection

When you’re typing quickly, the last thing you want is for “fd” to become Ctrl+D. Fast typing protection solves this: keys pressed shortly after your last keystroke produce the letter immediately — no hold detection, no waiting state.

Screenshot

This is enabled by default at 150ms. Adjust the slider to match your typing speed — faster typists may want a lower value (strict), while slower typists can use a higher value (forgiving).

Per-finger sensitivity

Pinkies are slower than index fingers. KeyPath lets you add extra tolerance for slower fingers to prevent accidental holds:

Screenshot

Quick tap

When enabled, a quick tap-and-release always produces the letter, even if another key was pressed during the tap window. This is especially helpful for fast typists who sometimes roll keys.

Raw values

Click # Raw values in the timing header to see and edit the exact millisecond values for tap window and hold delay. Useful for precise tuning or matching values from a community config.


Expert techniques

These are techniques being explored in the mechanical keyboard community. Some are in KeyPath today, others are planned or available through custom Kanata config.

Anti-cascade / nomods layer

After a tap resolves, temporarily disable all home row mods for the rest of the typing burst, re-enabling them after a brief idle. This prevents chain-reaction misfires.

Pioneered by Sunaku’s home row mods configuration, which implements this via a dedicated “nomods” layer in Kanata.

Typing streak detection

Track sustained typing bursts and suppress modifier activation entirely during the streak. Only re-enable modifiers after a pause. This eliminates nearly all misfires during fast prose typing.

See Sunaku’s bilateral combinations approach for a detailed implementation.

Achordion / Chordal Hold

QMK firmware libraries (created by Pascal Getreuer) that make the tap/hold decision based on which hand pressed the next key. Chordal Hold was merged into QMK core in February 2025, making opposite-hand detection a built-in feature for QMK keyboards.

KeyPath’s opposite-hand activation provides equivalent functionality for standard Mac keyboards via Kanata.

Eager mods

Apply the modifier immediately while the tap-hold decision is still pending. If the key resolves as a tap, the modifier is retroactively canceled. This reduces perceived latency for intentional modifier use.

Kanata supports eager mode via tap-hold-press and tap-hold-release variants. See the Kanata tap-hold documentation for details.

Shift exemption

Shift is the most frequently used modifier during normal typing (capital letters, punctuation). Advanced configurations exempt Shift from streak suppression and anti-cascade so capitalization works naturally during fast typing, while still suppressing accidental Control, Option, and Command.


Switching from Karabiner? See the From Karabiner-Elements guide for a detailed comparison of how home row mods work in both tools.


Resources

KeyPath guides

External references