kmk_firmware/docs/modtap.md
Ryan Rotter dfa73a8cca add backtick quotes for code snippets
* Added for keycodes, pin numbers, and code snippets. Mostly in tables.
* Enhance documentation readability
* Make automated spell checking easier - aspell automatically ignores these snippets
* fix invalid markdown table in mouse_keys.md
2022-04-25 16:53:22 +00:00

2.8 KiB

ModTap Keycodes

Enabling ModTap will give you access to the following keycodes and can simply be added to the modules list.

from kmk.modules.modtap import ModTap
modtap = ModTap()
# optional: set a custom tap timeout in ms
# modtap.tap_time = 300
keyboard.modules.append(modtap)

Keycodes

New Keycode Description
LCTL = KC.MT(KC.SOMETHING, KC.LCTRL) LCTRL if held kc if tapped
LSFT = KC.MT(KC.SOMETHING, KC.LSFT) LSHIFT if held kc if tapped
LALT = KC.MT(KC.SOMETHING, KC.LALT) LALT if held kc if tapped
LGUI = KC.MT(KC.SOMETHING, KC.LGUI) LGUI if held kc if tapped
RCTL = KC.MT(KC.SOMETHING, KC.RCTRL) RCTRL if held kc if tapped
RSFT = KC.MT(KC.SOMETHING, KC.RSFT) RSHIFT if held kc if tapped
RALT = KC.MT(KC.SOMETHING, KC.RALT) RALT if held kc if tapped
RGUI = KC.MT(KC.SOMETHING, KC.RGUI) RGUI if held kc if tapped
SGUI = KC.MT(KC.SOMETHING, KC.LSHFT(KC.LGUI)) LSHIFT and LGUI if held kc if tapped
LCA = KC.MT(KC.SOMETHING, KC.LCTRL(KC.LALT)) LCTRL and LALT if held kc if tapped
LCAG = KC.MT(KC.SOMETHING, KC.LCTRL(KC.LALT(KC.LGUI))) LCTRL and LALT and LGUI if held kc if tapped
MEH = KC.MT(KC.SOMETHING, KC.LCTRL(KC.LSFT(KC.LALT))) CTRL and LSHIFT and LALT if held kc if tapped
HYPR = KC.MT(KC.SOMETHING, KC.HYPR) LCTRL and LSHIFT and LALT and LGUI if held kc if tapped

Custom HoldTap Behavior

The full ModTap signature is as follows:

KC.MT(KC.TAP, KC.HOLD, prefer_hold=True, tap_interrupted=False, tap_time=None)
  • prefer_hold: decides which keycode the ModTap key resolves to when another key is pressed before the timeout finishes. When True the hold keycode is chosen, the tap keycode when False.
  • tap_interrupted: decides if the timeout will interrupt at the first other key press/down, or after the first other key up/release. Set to True for interrupt on release.
  • tap_time: length of the tap timeout in milliseconds.

Each of these parameters can be set for every ModTap key individually.