mirror of
https://github.com/zmkfirmware/zmk.git
synced 2026-03-31 02:15:25 -05:00
feat: Added toggle-mode, allowing toggle-on and toggle-off (#2555)
feat: added toggle mode to key and layer toggles docs: documented toggle mode changes
This commit is contained in:
@@ -24,3 +24,25 @@ Example:
|
||||
|
||||
You can use any keycode that works for `&kp` as parameter to `&kt`, however, [modified keys](../modifiers.mdx#modifier-functions) such as `LA(A)` will be toggled based on the status of the base keycode (in this case `A`).
|
||||
In other words, modifiers are ignored when determining whether or not the key is currently pressed.
|
||||
|
||||
### Configuration
|
||||
|
||||
#### Toggle mode
|
||||
|
||||
If you wish to ensure that a key is pressed or released, rather than merely toggling, then you can do so with the `toggle-mode` property.
|
||||
Define a new behavior and assign `"on"` or `"off"` to `toggle-mode`:
|
||||
|
||||
```dts
|
||||
/ {
|
||||
behaviors {
|
||||
kt_on: key_toggle_on_only {
|
||||
compatible = "zmk,behavior-key-toggle";
|
||||
#binding-cells = <1>;
|
||||
display-name = "Key Toggle On";
|
||||
toggle-mode = "on";
|
||||
};
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
You can then use `&kt_on` in place of `&kt` whenever you wish to only toggle a key on, and not toggle it off. An `"off"` version of the behavior can be defined similarly.
|
||||
|
||||
@@ -103,6 +103,28 @@ Example:
|
||||
&tog 3
|
||||
```
|
||||
|
||||
### Configuration
|
||||
|
||||
#### Toggle mode
|
||||
|
||||
If you wish to ensure that a layer is toggled on or off specifically, rather than switching between the two states, then you can do so with the `toggle-mode` property.
|
||||
Define a new behavior and assign `"on"` or `"off"` to `toggle-mode`:
|
||||
|
||||
```dts
|
||||
/ {
|
||||
behaviors {
|
||||
tog_on: toggle_layer_on_only {
|
||||
compatible = "zmk,behavior-toggle-layer";
|
||||
#binding-cells = <1>;
|
||||
display-name = "Toggle Layer On";
|
||||
toggle-mode = "on";
|
||||
};
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
You can then use `&tog_on` in place of `&tog` whenever you wish to only toggle a layer on, and not toggle it off. An `"off"` version of the behavior can be defined similarly.
|
||||
|
||||
## Conditional Layers
|
||||
|
||||
The "conditional layers" feature enables a particular layer when all layers in a specified set are active.
|
||||
|
||||
Reference in New Issue
Block a user