feat: Add more predefined behaviors

Adds predefined kt_on, kt_off, tog_on, tog_off, ktap behaviors.
This commit is contained in:
Nicolas Munnich
2025-05-14 21:22:07 +00:00
parent ada1542940
commit a05f5699dd
4 changed files with 61 additions and 10 deletions

View File

@@ -0,0 +1,21 @@
/*
* Copyright (c) 2025 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/behaviors.h>
/ {
behaviors {
#if ZMK_BEHAVIOR_OMIT(KTAP)
/omit-if-no-ref/
#endif
ktap: key_tap {
compatible = "zmk,behavior-macro-one-param";
#binding-cells = <1>;
display-name = "Key Tap";
bindings = <&macro_param_1to1>, <&kp MACRO_PLACEHOLDER>;
};
};
};

View File

@@ -16,5 +16,25 @@
#binding-cells = <1>;
display-name = "Key Toggle";
};
#if ZMK_BEHAVIOR_OMIT(KT_ON)
/omit-if-no-ref/
#endif
kt_on: key_toggle_on {
compatible = "zmk,behavior-key-toggle";
#binding-cells = <1>;
display-name = "Key Toggle On";
toggle-mode = "on";
};
#if ZMK_BEHAVIOR_OMIT(KT_OFF)
/omit-if-no-ref/
#endif
kt_off: key_toggle_off {
compatible = "zmk,behavior-key-toggle";
#binding-cells = <1>;
display-name = "Key Toggle Off";
toggle-mode = "off";
};
};
};

View File

@@ -17,5 +17,25 @@
display-name = "Toggle Layer";
locking;
};
#if ZMK_BEHAVIOR_OMIT(TOG_ON)
/omit-if-no-ref/
#endif
tog_on: toggle_layer_on {
compatible = "zmk,behavior-toggle-layer";
#binding-cells = <1>;
display-name = "Toggle Layer On";
toggle-mode = "on";
};
#if ZMK_BEHAVIOR_OMIT(TOG_OFF)
/omit-if-no-ref/
#endif
tog_off: toggle_layer_off {
compatible = "zmk,behavior-toggle-layer";
#binding-cells = <1>;
display-name = "Toggle Layer Off";
toggle-mode = "off";
};
};
};

View File

@@ -3,16 +3,6 @@
#include <dt-bindings/zmk/kscan_mock.h>
/ {
behaviors {
tog_off: toggle_layer_off_only {
compatible = "zmk,behavior-toggle-layer";
#binding-cells = <1>;
display-name = "Toggle Layer Off";
toggle-mode = "off";
locking;
};
};
keymap {
compatible = "zmk,keymap";