@ -5,7 +5,7 @@ sidebar_label: Caps Word
@@ -5,7 +5,7 @@ sidebar_label: Caps Word
## Summary
The caps word behavior behaves similar to a caps lock, but will automatically deactivate when one of the configured "break keycodes" is pressed, or if the caps word key is pressed again. For smaller keyboards, using [mod-taps](/docs/behaviors/mod-tap), this can help avoid repeated alternating holds when typing words in all caps.
The caps word behavior behaves similar to a caps lock, but will automatically deactivate when any key not in a continue list is pressed, or if the caps word key is pressed again. For smaller keyboards using [mod-taps](/docs/behaviors/mod-tap), this can help avoid repeated alternating holds when typing words in all caps.
The modifiers are applied only to to the alphabetic (`A` to `Z`) keycodes, to avoid automatically appliying them to numeric values, etc.
@ -9,6 +9,35 @@ See [Configuration Overview](/docs/config/index) for instructions on how to chan
@@ -9,6 +9,35 @@ See [Configuration Overview](/docs/config/index) for instructions on how to chan
See the [zmk/app/dts/behaviors/](https://github.com/zmkfirmware/zmk/tree/main/app/dts/behaviors) folder for all default behaviors.
## Caps Word
Creates a custom behavior that behaves similar to a caps lock but deactivates when any key not in a continue list is pressed.
See the [caps word behavior](/docs/behaviors/caps-word) documentation for more details and examples.
Creates a custom behavior that triggers one behavior when a key is held or a different one when the key is tapped.
@ -17,45 +46,113 @@ See the [hold-tap behavior documentation](/docs/behaviors/hold-tap) for more det
@@ -17,45 +46,113 @@ See the [hold-tap behavior documentation](/docs/behaviors/hold-tap) for more det
| `label` | string | Unique label for the node | |
| `#binding-cells` | int | Must be `<0>` | |
| `usage-pages` | array | List of HID usage pages to track | `<HID_USAGE_KEY>` |
For the `usage-pages` property, use the `HID_USAGE_*` defines from [dt-bindings/zmk/hid_usage_pages.h](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/hid_usage_pages.h).
You can use the following nodes to tweak the default behaviors:
| `¯o_pause_for_release` | Pauses the macro until the macro key itself is released |
| `¯o_wait_time TIME` | Changes the time to wait (in milliseconds) before triggering the next behavior. |
| `¯o_tap_time TIME` | Changes the time to wait (in milliseconds) between the press and release events of a tapped behavior. |
## 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.
Creates a custom behavior that triggers one of two behaviors depending on whether certain modifiers are held.
| `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. The morph behavior is used if any of these 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.
@ -73,6 +170,8 @@ See the [sticky key behavior](/docs/behaviors/sticky-key) and [sticky layer beha
@@ -73,6 +170,8 @@ See the [sticky key behavior](/docs/behaviors/sticky-key) and [sticky layer beha
Applies to: `compatible = "zmk,behavior-sticky-key"`
| Property | Type | Description | Default |
@ -82,6 +181,7 @@ Applies to: `compatible = "zmk,behavior-sticky-key"`
@@ -82,6 +181,7 @@ Applies to: `compatible = "zmk,behavior-sticky-key"`
| `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 |
| `ignore-modifiers` | bool | If enabled, pressing a modifier key does not cancel the sticky key | true |
You can use the following nodes to tweak the default behaviors:
@ -89,3 +189,20 @@ You can use the following nodes to tweak the default behaviors:
@@ -89,3 +189,20 @@ You can use the following nodes to tweak the default behaviors: