feat(behaviors): Support parameterized macros.

* Add two new compatibles for macros that
  take one or two parameters when bound in
  a keymap.
* Use `&macro_param_1to1`, `&macro_param_1to2`, `&macro_param_2to1`,
  and `&macro_param_2to2` control entries in the bindings for the macro
  to have the next binding entry have it's values substituted.

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
This commit is contained in:
Peter Johanson
2022-04-08 15:38:46 +00:00
committed by Pete Johanson
parent e686fce4d9
commit 805dd4a53b
16 changed files with 310 additions and 48 deletions

View File

@@ -0,0 +1,13 @@
# Copyright (c) 2022 The ZMK Contributors
# SPDX-License-Identifier: MIT
properties:
bindings:
type: phandle-array
required: true
wait-ms:
type: int
description: The default time to wait (in milliseconds) before triggering the next behavior in the macro bindings list.
tap-ms:
type: int
description: The default time to wait (in milliseconds) between the press and release events on a tapped macro behavior binding

View File

@@ -0,0 +1,8 @@
# Copyright (c) 2022 The ZMK Contributors
# SPDX-License-Identifier: MIT
description: Macro Behavior
compatible: "zmk,behavior-macro-one-param"
include: [one_param.yaml, macro_base.yaml]

View File

@@ -0,0 +1,8 @@
# Copyright (c) 2022 The ZMK Contributors
# SPDX-License-Identifier: MIT
description: Macro Behavior
compatible: "zmk,behavior-macro-two-param"
include: [two_param.yaml, macro_base.yaml]

View File

@@ -5,15 +5,4 @@ description: Macro Behavior
compatible: "zmk,behavior-macro"
include: zero_param.yaml
properties:
bindings:
type: phandle-array
required: true
wait-ms:
type: int
description: The default time to wait (in milliseconds) before triggering the next behavior in the macro bindings list.
tap-ms:
type: int
description: The default time to wait (in milliseconds) between the press and release events on a tapped macro behavior binding
include: [zero_param.yaml, macro_base.yaml]

View File

@@ -0,0 +1,8 @@
# Copyright (c) 2023 The ZMK Contributors
# SPDX-License-Identifier: MIT
description: Macro Parameter One Substituted Into Next Binding's First Parameter
compatible: "zmk,macro-param-1to1"
include: zero_param.yaml

View File

@@ -0,0 +1,8 @@
# Copyright (c) 2023 The ZMK Contributors
# SPDX-License-Identifier: MIT
description: Macro Parameter One Substituted Into Next Binding's Second Parameter
compatible: "zmk,macro-param-1to2"
include: zero_param.yaml

View File

@@ -0,0 +1,8 @@
# Copyright (c) 2023 The ZMK Contributors
# SPDX-License-Identifier: MIT
description: Macro Parameter Two Substituted Into Next Binding's First Parameter
compatible: "zmk,macro-param-2to1"
include: zero_param.yaml

View File

@@ -0,0 +1,8 @@
# Copyright (c) 2023 The ZMK Contributors
# SPDX-License-Identifier: MIT
description: Macro Parameter Two Substituted Into Next Binding's Second Parameter
compatible: "zmk,macro-param-2to2"
include: zero_param.yaml