kmk_firmware/docs/oneshot.md
2022-02-13 16:43:14 -08:00

974 B

OneShot Keycodes

OneShot keys or sticky keys enable you to have keys that keep staying pressed for a certain time or until another key is pressed and released. If the timeout expires or other keys are pressed, and the sticky key wasn't released, it is handled as a regular key hold.

Enable OneShot Keys

from kmk.modules.oneshot import OneShot
oneshot = OneShot()
# optional: set a custom tap timeout in ms (default: 1000ms)
# oneshot.tap_time = 1500
keyboard.modules.append(modtap)

Keycodes

|Keycode | Aliases |Description | |KC.OS(KC.ANY) | KC.ONESHOT |make a sticky version of KC.ANY |

KC.ONESHOT accepts any valid key code as argument, including modifiers and KMK internal keys like momentary layer shifts.

Custom OneShot Behavior

The full OneShot signature is as follows:

KC.OS(
    KC.TAP, # the sticky keycode
    tap_time=None # length of the tap timeout in milliseconds
    )