-
-
Notifications
You must be signed in to change notification settings - Fork 42.9k
Description
Feature Request Type
- Core functionality
- Add-on hardware support (eg. audio, RGB, OLED screen, etc.)
- Alteration (enhancement/optimization) of existing feature(s)
- New behavior
Description
Currently, QMK combos activate purely on timing - if the specified keys are pressed within COMBO_TERM, the combo fires. This creates a fundamental tension: the timing window must be large enough to reliably catch intentional combos, yet small enough to avoid misfires during fast typing. For some typists, no single timing value satisfies both requirements, forcing users to either deal with misfires or abandon the concept.
Example scenario:
- User has AS (under QWERTY) mapped to Ctrl as a combo
- User rapidly rolls through "asdf"
- Despite no intention to use Ctrl, the combo can fire if AS overlap occurs within COMBO_TERM, mistakenly triggering Ctrl+D.
Proposed Solution
Add optional hold timing and opposite-hand activation logic similar to CHORDAL_HOLD for combo modifiers. When enabled, combo mods would only activate when:
- An opposite-hand key is pressed while the combo keys are held, OR
- A hold timeout is exceeded, indicating deliberate activation rather than typing
This approach mirrors real-world usage patterns: users virtually never chord modifiers on one hand to press keys with the same hand; also, such modifiers are typically held for a distinct duration rather than being "immediately" released as during typing.
Benefits
- Eliminates same-hand false positives during fast typing sequences
- Potentially eliminate false positives entirely with tuning of hold timing
- Provides a tuning parameter that matches human behavior (deliberate pause vs. typing speed, opposite hand activation)
- Makes combo mods viable for fast typists
- Consistent with existing QMK features for tap-hold (
CHORDAL_HOLD)