Modifier + Navigation combos can be tricky, especially with the EZ and TT flavors. Shift+Arrows is one of these common pitfalls for newcomers.
The Idea
We have tried various approches where a modifier would be kept by the Navigation layer. The idea is simple:
- press a modifier key: Mod
- press the Nav key (thumb)
- Mod key can be released: the active layer is now Mod-Nav as long as the Nav key is held.
Tests
This has been tested with two optional flags on Ækeynox-ZMK:
ENABLE_MOD_HOLD_NAVIGATION, to do single-handed Alt-Tab and Alt-Shift-Tab in the HRM-Vim flavor
PINKY_MOD_HOLD, for single-handed home row mods
These two options have been proposed for specific use cases. They ignore certain modifiers.
With the QMx2040 we’ve been further: this behavior is always active with all modifiers. Surprisingly, it seems to be working just fine. Here’s how text is selected on this keyboard:
- press Shift
- press Nav: we’re in “selection mode” as long as Nav is held
- extend the selection with Arrows or Ctrl+Arrows
We’ve tested it with newbies, and it seems to be very intuitive.
Proposal
- Add a
MOD_HOLD option to the Selenium spec.
- Make sure it can be implemented in both ZMK and QMK.
- Unless a significant gotcha is found, enable it by default.
Modifier + Navigation combos can be tricky, especially with the EZ and TT flavors. Shift+Arrows is one of these common pitfalls for newcomers.
The Idea
We have tried various approches where a modifier would be kept by the Navigation layer. The idea is simple:
Tests
This has been tested with two optional flags on Ækeynox-ZMK:
ENABLE_MOD_HOLD_NAVIGATION, to do single-handed Alt-Tab and Alt-Shift-Tab in the HRM-Vim flavorPINKY_MOD_HOLD, for single-handed home row modsThese two options have been proposed for specific use cases. They ignore certain modifiers.
With the QMx2040 we’ve been further: this behavior is always active with all modifiers. Surprisingly, it seems to be working just fine. Here’s how text is selected on this keyboard:
We’ve tested it with newbies, and it seems to be very intuitive.
Proposal
MOD_HOLDoption to the Selenium spec.