page1
MT(shift, f)
shift
As soon as another key is pressed, the mod-tap behavior is decided.
Tapping term has no influence, so this case is includes 4a,4b and 4c on other pages.
Output: J
j
j
4.abc
Hold-preferred flavor
Decision is made on key-down.
Similar in outcome to QMK’s default behavior, but the timing is much faster
4.d
MT(shift, f)
shift
Output: J
Or Jjjjjjj depending on how long j key is held
j
j
MT(shift, f)
tapping_term
f
MT(shift, f)
tapping_term
shift
The tap case. MT is released before tapping_term expires, a short keypress is simulated.
Output: f
The hold case. MT is released after tapping_term expires. When tapping_term expires, shift is ‘pressed’ and released when the MT is released.
Output: shift
MT(shift, f)
shift
The mod-tap decision can be made only after the tapping_term has expired or the MT is released. The ‘j’ key press is not handled immediately.
Output: J
j
j
tapping_term
1.
2.
MT(shift, f)
tapping_term
f
When a modifier is active when the mod-tap key is pressed, the modifier(s) should be preserved until the mod-tap decision can be made
Output: ctrl-f
3.a
ctrl
ctrl
MT(shift, f)
shift
The MT behavior is decided when the tapping_term expires.
Output: J
j
j
tapping_term
MT(shift, f)
f
The MT behavior is decided as the MT key is released.
Output: fj
j
j
tapping_term
4.a
4.b
4.c’
MT(shift, f)
tapping_term
shift
When a modifier is active when the mod-tap key is pressed, the modifier(s) should be preserved until the mod-tap decision can be made
3.b
ctrl
ctrl
MT(shift, f)
f
The MT behavior decided on the release of the MT key.
Output: fj
j
j
tapping_term
4.d’
legend
‘input’ keypress
timer
‘output’ keypress
Tap-preferred flavor
Decision is made on tapping_term
Similar in outcome to QMK’s IGNORE_MOD_TAP_INTERRUPT
MT(shift, f)
shift
The mod-tap decision can be made only after the tapping_term has expired or the MT is released. The ‘j’ key press is not handled immediately.
Output: J
j
j
tapping_term
MT(shift, f)
shift
The MT behavior is decided when the tapping_term expires.
Output: J
j
j
tapping_term
MT(shift, f)
shift
The MT behavior is decided as the MT key is released.
Output: fj
j
j
tapping_term
4.a
4.b
4.c’
MT(shift, f)
f
The MT behavior decided on the release of the MT key.
Output: fj
j
j
tapping_term
4.d’
Balanced flavor
Decision is made on key-up
Similar in outcome to QMK’s IGNORE_MOD_TAP_INTERRUPT and
PERMISSIVE_HOLD
Shared behavior
MT(mod, f)
j
tapping_term
5 weird combinations
LT(L1, d)
tapping_term!
mod
j
d
MT(shift, f)
tapping_term
shift
j
j
MT(x, f)
j
tapping_term
MT(ctrl, d)
tapping_term
mod
j
ctrl
MT(x, f)
j
tapping_term
MT(ctrl, d)
tapping_term
f
j
d
When a non-modifier key is active when a mod-tap is activated, it is released immediately to prevent additional key repeats.
The MT behavior should ignore the key-up event, as the key-down event came before the MT key.
3.d
MT(x, f)
j
tapping_term
MT(ctrl, d)
tapping_term!
f
j
ctrl
MT(shift, f)
j
tapping_term
MT(ctrl, d)
tapping_term
shift
j
d
MT(shift, f)
j
tapping_term
MT(ctrl, d)
tapping_term
shift
j
d
MT(shift, f)
tapping_term
f
j
j
When a non-modifier key is active when a mod-tap is activated, it is released immediately to prevent additional key repeats.
3.c
MT(mod, f)
j
tapping_term
LT(L1, d)
tapping_term!
mod
j
d