forked from kofal.net/zmk
docs: Add documentation for config options
This commit is contained in:
91
docs/docs/config/behaviors.md
Normal file
91
docs/docs/config/behaviors.md
Normal file
@@ -0,0 +1,91 @@
|
||||
---
|
||||
title: Behavior Configuration
|
||||
sidebar_label: Behaviors
|
||||
---
|
||||
|
||||
Some behaviors have properties to adjust how they behave. These can also be used as templates to create custom behaviors when none of the built-in behaviors do what you want.
|
||||
|
||||
See [Configuration Overview](/docs/config/index) for instructions on how to change these settings.
|
||||
|
||||
See the [zmk/app/dts/behaviors/](https://github.com/zmkfirmware/zmk/tree/main/app/dts/behaviors) folder for all default behaviors.
|
||||
|
||||
## Hold-Tap
|
||||
|
||||
Creates a custom behavior that triggers one behavior when a key is held or a different one when the key is tapped.
|
||||
|
||||
See the [hold-tap behavior documentation](/docs/behaviors/hold-tap) for more details and examples.
|
||||
|
||||
### Devicetree
|
||||
|
||||
Applies to: `compatible = "zmk,behavior-hold-tap"`
|
||||
|
||||
| Property | Type | Description | Default |
|
||||
| ----------------- | ------------- | ------------------------------------------------------------------------------ | ------------------ |
|
||||
| `label` | string | Unique label for the node | |
|
||||
| `#binding-cells` | int | Must be `<2>` | |
|
||||
| `bindings` | phandle array | A list of two behaviors: one for hold and one for tap | |
|
||||
| `tapping-term-ms` | int | How long in milliseconds the key must be held to trigger a hold | |
|
||||
| `quick-tap-ms` | int | Tap twice within this period in milliseconds to trigger a tap, even when held | -1 |
|
||||
| `flavor` | string | Adjusts how the behavior chooses between hold and tap | `"hold-preferred"` |
|
||||
| `retro-tap` | bool | Triggers the tap behavior on release if no other key was pressed during a hold | false |
|
||||
|
||||
The `flavor` property may be one of:
|
||||
|
||||
- `"hold-preferred"`
|
||||
- `"balanced"`
|
||||
- `"tap-preferred"`
|
||||
|
||||
See the [hold-tap behavior documentation](/docs/behaviors/hold-tap) for an explanation of each flavor.
|
||||
|
||||
| Node | Behavior |
|
||||
| ----- | --------------------------------------------- |
|
||||
| `<` | [Layer-tap](/docs/behaviors/layers#layer-tap) |
|
||||
| `&mt` | [Mod-tap](/docs/behaviors/mod-tap) |
|
||||
|
||||
## Mod-Morph
|
||||
|
||||
Creates a custom behavior that triggers one behavior when a key is pressed without certain modifiers held or a different one if certain modifiers are held.
|
||||
|
||||
### Devicetree
|
||||
|
||||
Applies to: `compatible = "zmk,behavior-mod-morph"`
|
||||
|
||||
| Property | Type | Description |
|
||||
| ---------------- | ------------- | ----------------------------------------------------------------------------------- |
|
||||
| `label` | string | Unique label for the node |
|
||||
| `#binding-cells` | int | Must be `<0>` |
|
||||
| `bindings` | phandle array | A list of two behaviors: one for normal press and one for mod morphed press |
|
||||
| `mods` | int | A bit field of modifiers which will switch to the morph behavior if any are pressed |
|
||||
|
||||
See [dt-bindings/zmk/modifiers.h](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/modifiers.h) for a list of modifiers.
|
||||
|
||||
You can use the following nodes to tweak the default behaviors:
|
||||
|
||||
| Node | Behavior |
|
||||
| -------- | ------------ |
|
||||
| `&gresc` | Grave escape |
|
||||
|
||||
## Sticky Key
|
||||
|
||||
Creates a custom behavior that triggers a behavior and keeps it pressed it until another key is pressed and released.
|
||||
|
||||
See the [sticky key behavior](/docs/behaviors/sticky-key) and [sticky layer behavior](/docs/behaviors/sticky-layer) documentation for more details and examples.
|
||||
|
||||
### Devicetree
|
||||
|
||||
Applies to: `compatible = "zmk,behavior-sticky-key"`
|
||||
|
||||
| Property | Type | Description | Default |
|
||||
| ------------------ | ------------- | ------------------------------------------------------------------------ | ------- |
|
||||
| `label` | string | Unique label for the node | |
|
||||
| `#binding-cells` | int | Must match the number of parameters the `bindings` behavior uses | |
|
||||
| `bindings` | phandle array | A behavior (without parameters) to trigger | |
|
||||
| `release-after-ms` | int | Releases the key after this many milliseconds if no other key is pressed | 1000 |
|
||||
| `quick-release` | bool | Release the sticky key on the next key press instead of release | false |
|
||||
|
||||
You can use the following nodes to tweak the default behaviors:
|
||||
|
||||
| Node | Behavior |
|
||||
| ----- | -------------------------------------------- |
|
||||
| `&sk` | [Sticky key](/docs/behaviors/sticky-key) |
|
||||
| `&sl` | [Sticky layer](/docs/behaviors/sticky-layer) |
|
||||
Reference in New Issue
Block a user