34 lines
1.0 KiB
Markdown
34 lines
1.0 KiB
Markdown
# 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
|
|
|
|
```python
|
|
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:
|
|
```python
|
|
KC.OS(
|
|
KC.TAP, # the sticky keycode
|
|
tap_time=None # length of the tap timeout in milliseconds
|
|
)
|
|
```
|