Skip to content

Explore moving modifiers to the thumb cluster #7

@rdlu

Description

@rdlu

Goal

Relocate the home-row-mod responsibility from bottom-row letters (current state on main after #6) to the thumb cluster, while still preserving:

  • easy hold access to all four non-base layers (NAV, CODE, MEDIA, SYS|NUM)
  • caps_word key
  • fast access to DEL
  • BSPC, SPACE, ENTER on the thumbs (current behavior)
  • all four mods directly holdable as real chords — the workflow needs arbitrary combinations of CTRL + ALT + GUI + SHIFT + key (many apps use 3-mod shortcuts)

Non-constraint: games. Game sessions will run on a dedicated locked layer (see "Future: game layer" below), so the daily layout does not need to preserve held-SPACE / held-WASD semantics. This unlocks lt NAV SPACE and similar hold-on-common-key patterns.

No rush — this is a design exploration issue, not a queued task.

Current thumb cluster (row 4, positions 52–63)

Left  (52–57): [C_MUTE enc] [mo SYS] [F11] [LGUI] [mo NAV] [BSPC]
Right (58–63): [ENTER] [SPACE] [lt CODE DEL] [mo MEDIA] [F12] [caps_word]

5 usable left + 6 usable right = 11 thumb slots (excluding encoder click).

Demand list

Need Count
Layer holds (NAV, CODE, MEDIA, SYS) 4
Modifiers (LCTRL, LSHFT, LALT, LGUI) — all must be directly holdable 4
Text keys (SPACE, ENTER, BSPC, DEL) 4
caps_word 1
Nice-to-have (F11, F12, C_MUTE encoder) 3

16 demands, 11 slots → we must combine via hold-taps. Layer-based mods are off the table because any multi-mod chord needs all mods holdable at once.


Idea 1 — Mod-tap thumbs, plain mo for layers (urob-style)

Every text-carrying thumb key becomes a mod-tap. Layers remain plain mo / lt. require-prior-idle-ms = 150 protects the tap side when chording (press mod, then tap the paired text key within the idle window → the text key resolves to tap, not hold).

Chord compatibility — the hard constraints

Assume pairings: LCTRL=BSPC, LSHFT=SPACE or ENTER, LGUI=F11, LALT=?

Shortcut Needs Reachable? Notes
CTRL+P LCTRL + P left thumb + right hand
CTRL+SHIFT+P LCTRL + LSHFT + P two left-thumb keys (BSPC + SPACE) + right P — thumb roll
CTRL+C / CTRL+V LCTRL + letter clean
CTRL+TAB LCTRL + TAB TAB is on top row, not thumb
ALT+TAB LALT + TAB as long as LALT is not paired with TAB
ALT+F4 LALT + F4 F4 on NAV layer — NAV held + ALT thumb + F4 key
GUI+L LGUI + L clean
GUI+SHIFT+S LGUI + LSHFT + S ⚠️ if both on left thumb and S is left-hand, awkward. Distribute mods across both thumbs
CTRL+ALT+DEL LCTRL + LALT + DEL ❌ if mt LALT DEL holding DEL produces ALT, not DEL. Fix: don't pair LALT with DEL. Keep DEL on lt CODE DEL so tap-for-DEL stays clean
CTRL+SPACE (autocomplete) LCTRL + SPACE LCTRL held, SPACE pressed within idle window → SPACE stays as tap
CTRL+ALT+SHIFT+letter all three + letter ⚠️ three thumb keys held simultaneously — possible but clumsy; needs mods distributed across both thumbs

Key design decisions for Idea 1

  1. Which text key pairs with LALT? Must not be commonly chorded with ALT. Candidates:
    • F11 or F12 (rare enough) — but then those thumb slots become the ALT home
    • ENTER (ALT+ENTER used by some apps for fullscreen / properties — moderate risk)
    • A dedicated plain-LALT slot, no tap side (costs a slot)
  2. Bilateral SHIFT — strong case for putting LSHFT on both thumbs: left for right-hand capitals, right for left-hand capitals. Costs an extra slot.
  3. F11 / F12 / LGUI — demote to SYS or NAV layer to free thumb slots for mods.
  4. Caps word — outer-edge slot (pos 63) stays.

Three concrete variants to build

Variant A — bilateral shift, F11/F12 carry GUI/ALT

Left:  [mo SYS] [mo NAV] [mt LSHFT SPACE] [mt LCTRL BSPC] [mt LALT F11]
Right: [mt LSHFT ENTER] [lt CODE DEL] [mo MEDIA] [mt LGUI F12] [caps_word]
  • SPACE moves to left thumb (swap with current); gain bilateral shift
  • LALT on F11 (rare tap side, acceptable)
  • LGUI on F12 (ditto)
  • Awkward chord: CTRL+ALT+DEL — CTRL (BSPC) + ALT (F11) both on left thumb, DEL on right. Doable via thumb roll.
  • Awkward chord: GUI+SHIFT+S — GUI on right, SHIFT on right (ENTER), S is left-hand. Two right-thumb keys + left hand → clean if F12 and ENTER are reachable by thumb roll.

Variant B — layer-taps for layers, mods spread across both thumbs

Left:  [mo SYS] [mt LGUI F11] [mt LCTRL BSPC] [lt NAV SPACE] [mt LSHFT ENTER-dup]
Right: [mt LSHFT SPACE-dup?] [mt LALT DEL?] [lt CODE F12?] [mo MEDIA] [caps_word]
  • Combines layer-tap on SPACE (now that games aren't a constraint)
  • Dense — may overflow 11 slots
  • Similar awkward edges

Variant C — demote F11/F12/LGUI to SYS layer, open thumb slots for dedicated mods

Left:  [mo SYS] [LALT-plain] [mt LCTRL BSPC] [mt LSHFT SPACE] [mo NAV]
Right: [mt LSHFT ENTER] [mt LGUI DEL-or-other] [lt CODE DEL] [mo MEDIA] [caps_word] [—]
  • Plain LALT thumb slot (no tap side) — costs one slot but eliminates the LALT pairing problem
  • F11/F12 accessible on SYS layer
  • Probably the cleanest of the three, at the cost of losing direct thumb-F11/F12

None of A/B/C are obviously right. Picking means deciding which chord we're willing to make slightly awkward and how precious F11/F12 are as thumb slots.


Idea 4 — Home-row mods back on home row, NAV arrows relocated instead

Alternative framing: instead of moving mods onto thumbs, solve the NAV arrow repeat problem by moving the arrow cluster off positions with hold-taps underneath.

Options for new NAV arrow location:

  • NAV layer row 3 (base N/M/,/. — all plain kp currently) — shift vim-style arrow cluster down one row
  • Dedicated physical arrow keys on base (pos 32, 45) — make them &trans on NAV so base arrows pass through
  • Thumb-based arrows (mo NAV + thumb keys for L/R, separate U/D binding)

Pros

  • Home-row-mod ergonomics restored (the most thoroughly-documented HRM pattern, decade of tuning)
  • No thumb hold-taps → thumbs stay crisp
  • All four mods holdable on home row — chords are clean
  • Bottom row also stays plain

Cons

  • Loses hjkl-on-home-row muscle memory on NAV
  • Doesn't fit the original "mods on thumbs" premise of this issue

Future: dedicated game layer(s)

Tracked separately from this design work — note it here so the daily layout doesn't try to preserve gaming semantics.

Sketch:

  • New top-level layer (e.g. GAME), entered via &to GAME from the SYS layer (explicit toggle, not momentary)
  • Exit via an easy-to-reach key on the game layer itself (e.g. long-press ESC → to BASE)
  • Game layer disables mod-taps entirely — pure plain &kp for WASD + held-SPACE / held-SHIFT semantics
  • Possibly multiple game layers (per-game profiles) toggled from SYS

Open design questions for the game layer:

  • One layer or per-game variants?
  • How to indicate "game mode active" — RGB color? OLED display?
  • Should the game layer keep NAV access for non-gaming keys (alt-tab out, discord messages), or be a pure island?
  • Bluetooth profile switching still accessible?

Not in scope for this issue — file a separate issue when ready to design.


Open questions (daily layout)

  • Are F11 / F12 / LGUI precious enough to keep dedicated thumb slots, or demote to a layer?
  • Which single multi-mod shortcut hurts the most if it becomes a two-step gesture?
  • Preference: bilateral SHIFT (extra slot) vs. compact single-side SHIFT?

Suggested next step

Given the chord-compatibility analysis, Idea 4 is looking stronger than Idea 1 for a workflow heavy on multi-mod shortcuts. Home-row mods have a decade of refinement behind them; thumb-cluster mods are harder to tune and each variant trades one awkward chord for another.

Options:

  1. Build Idea 4 as a canary: keep Move home-row mods to bottom row to unblock NAV arrow repeat #6's working layout as the safety net on main, branch off to restore home-row mods + move NAV arrows elsewhere. Probably the path of least regret.
  2. Build Idea 1 Variant C as a canary: plain LALT thumb + dedicated mod slots, demote F11/F12 to SYS. Cleanest of the thumb-mod variants.
  3. Park this issue until there's a concrete pain point with Move home-row mods to bottom row to unblock NAV arrow repeat #6's bottom-row mods.

Related: #5 (original NAV arrow repeat), #6 (bottom-row-mods fallback on branch feat/nav-arrow-repeat).

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestkeymapKeymap, layers, or key behaviorsquestionFurther information is requestedthumb-clusterThumb cluster layout and behaviors

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions