Is your feature request related to a problem? Please describe.
Today, every remapping primitive in Bazecor keys off a single physical key:
- Dual-Function / Mod-Tap: one key, tap vs. hold.
- OneShot modifiers: one key, sticky.
- SuperKeys: one key, tap/hold/2tap/2tap&hold patterns.
- Macros: one key, fixed sequence.
- Qukeys settings: only resolve tap-vs-hold timing, not modifier intent.
There is no way to define behavior that depends on two physical modifiers being held together. Specifically, I would like to remap "Ctrl held + Shift held" so that, while that chord is held, the constituent modifiers are suppressed on the wire and LeftGui (Cmd / Super / Win) is reported instead, then cleanly released when either key is released.
The motivation is being able to use a comfortable home-row chord as Cmd on macOS (or Super/Win elsewhere) without dedicating a thumb key, and without depending on OS-level tooling that has to be reinstalled and re-permissioned on every machine.
Describe the solution you'd like
A new "Modifier Chord" mapping type, configurable from the keymap UI:
- Input: a set of physical modifier keys that must all be held (e.g., LCtrl + LShift).
- Output: a different modifier (e.g., LGui), emitted on the wire while the chord is held.
- While the chord is active, the constituent modifiers' usage reports are suppressed so the host only sees the substitute modifier.
- On release of any chord member, the substitute modifier is released and normal behavior resumes (no stuck modifiers, no spurious key events).
- Configurable per-layer, like other key behaviors.
- A small overlap/timing tolerance similar to qukeys so near-simultaneous presses are still detected as a chord rather than two separate modifier presses.
This is analogous to QMK's Combos (when used to emit a modifier), kanata's chord layers, and Karabiner's "simultaneous" complex modifications, all of which support this exact use case.
Describe alternatives you've considered
- Dedicating a single key to GUI (or Hyper/Meh) via remap or Mod-Tap. Works but consumes a key and breaks muscle memory built around chorded modifiers.
- OS-level tools: Karabiner-Elements (macOS), AutoHotkey / PowerToys (Windows), kanata / keyd (Linux). All can do this, but moving the logic into firmware means it travels with the keyboard across machines, KVMs, and OS reinstalls, which is the whole point of a programmable keyboard.
- SuperKeys: cannot detect "another modifier is also held," only timing on a single key.
- Macros: fire on a single keypress, no chord awareness.
Additional context
Related open issues that touch the broader "modifier combinations are under-supported" theme but go in different directions:
None of these cover "set of modifiers held together → substitute modifier on the wire," which is what this request is asking for.
Is your feature request related to a problem? Please describe.
Today, every remapping primitive in Bazecor keys off a single physical key:
There is no way to define behavior that depends on two physical modifiers being held together. Specifically, I would like to remap "Ctrl held + Shift held" so that, while that chord is held, the constituent modifiers are suppressed on the wire and
LeftGui(Cmd / Super / Win) is reported instead, then cleanly released when either key is released.The motivation is being able to use a comfortable home-row chord as Cmd on macOS (or Super/Win elsewhere) without dedicating a thumb key, and without depending on OS-level tooling that has to be reinstalled and re-permissioned on every machine.
Describe the solution you'd like
A new "Modifier Chord" mapping type, configurable from the keymap UI:
This is analogous to QMK's Combos (when used to emit a modifier), kanata's chord layers, and Karabiner's "simultaneous" complex modifications, all of which support this exact use case.
Describe alternatives you've considered
Additional context
Related open issues that touch the broader "modifier combinations are under-supported" theme but go in different directions:
None of these cover "set of modifiers held together → substitute modifier on the wire," which is what this request is asking for.