From 2e9ab8b006a018210c010ecc8ccda00db0d21bb9 Mon Sep 17 00:00:00 2001 From: GreenAirplane Date: Wed, 20 Jul 2022 11:17:19 -0400 Subject: [PATCH] feat(docs): Document behavior queue limit for Macros (#1384) Co-authored-by: Cem Aksoylar Co-authored-by: Dom H --- docs/docs/behaviors/macros.md | 6 ++++++ docs/docs/config/behaviors.md | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/docs/docs/behaviors/macros.md b/docs/docs/behaviors/macros.md index aca9eb7a..1648892e 100644 --- a/docs/docs/behaviors/macros.md +++ b/docs/docs/behaviors/macros.md @@ -134,6 +134,12 @@ bindings ; ``` +### Behavior Queue Limit + +Macros use an internal queue to invoke each behavior in the bindings list when triggered, which has a size of 64 by default. Bindings in "press" and "release" modes correspond to one event in the queue, whereas "tap" mode bindings correspond to two (one for press and one for release). As a result, the effective number of actions processed might be less than 64 and this can cause problems for long macros. + +To prevent issues with longer macros, you can change the size of this queue via the `CONFIG_ZMK_BEHAVIORS_QUEUE_SIZE` setting in your configuration, [typically through your `.conf` file](../config/index.md). For example, `CONFIG_ZMK_BEHAVIORS_QUEUE_SIZE=512` would allow your macro to type about 256 characters. + ## Common Patterns Below are some examples of how the macro behavior can be used for various useful functionality. diff --git a/docs/docs/config/behaviors.md b/docs/docs/config/behaviors.md index a4e847dc..67f5ce74 100644 --- a/docs/docs/config/behaviors.md +++ b/docs/docs/config/behaviors.md @@ -9,6 +9,14 @@ See [Configuration Overview](index.md) for instructions on how to change these s See the [zmk/app/dts/behaviors/](https://github.com/zmkfirmware/zmk/tree/main/app/dts/behaviors) folder for all default behaviors. +## Common + +### Kconfig + +| Config | Type | Description | Default | +| --------------------------------- | ---- | ------------------------------------------------------------------------------------ | ------- | +| `CONFIG_ZMK_BEHAVIORS_QUEUE_SIZE` | int | Maximum number of behaviors to allow queueing from a macro or other complex behavior | 64 | + ## 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.