33 lines
974 B
Markdown
33 lines
974 B
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
|
||
|
)
|
||
|
```
|