45 lines
2.8 KiB
Markdown
45 lines
2.8 KiB
Markdown
# ModTap Keycodes
|
|
Enabling ModTap will give you access to the following keycodes and can simply be
|
|
added to the modules list.
|
|
|
|
```python
|
|
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:
|
|
```python
|
|
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
|
|
choosen, 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.
|