summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2020-08-18 14:31:20 -0400
committerGitHub <noreply@github.com>2020-08-18 14:31:20 -0400
commitc054feb3c942b26bf0ddd0fc6e99ac8e3703e8d4 (patch)
treefc6e4cb070391573eb99f04898e35aa3de777785
parentc667be1404259851daca8719f08e1436b408fea9 (diff)
parent63e02d60dcfbf4e4d7f9954075d1e087f816944b (diff)
Merge pull request #100 from petejohanson/behaviors/add-none
Add `&none` behavior.
-rw-r--r--app/CMakeLists.txt1
-rw-r--r--app/dts/behaviors.dtsi1
-rw-r--r--app/dts/behaviors/none.dtsi15
-rw-r--r--app/dts/bindings/behaviors/zmk,behavior-none.yaml8
-rw-r--r--app/src/behaviors/behavior_none.c48
-rw-r--r--docs/docs/behavior/misc.md41
-rw-r--r--docs/sidebars.js1
7 files changed, 115 insertions, 0 deletions
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index e0b9aea..5e1bd88 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -40,6 +40,7 @@ target_sources(app PRIVATE src/behaviors/behavior_mod_tap.c)
target_sources(app PRIVATE src/behaviors/behavior_momentary_layer.c)
target_sources(app PRIVATE src/behaviors/behavior_toggle_layer.c)
target_sources(app PRIVATE src/behaviors/behavior_transparent.c)
+target_sources(app PRIVATE src/behaviors/behavior_none.c)
target_sources(app PRIVATE src/behaviors/behavior_sensor_rotate_key_press.c)
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/behaviors/behavior_rgb_underglow.c)
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/ble.c)
diff --git a/app/dts/behaviors.dtsi b/app/dts/behaviors.dtsi
index a47a8b8..4cfb7a0 100644
--- a/app/dts/behaviors.dtsi
+++ b/app/dts/behaviors.dtsi
@@ -1,5 +1,6 @@
#include <behaviors/key_press.dtsi>
#include <behaviors/transparent.dtsi>
+#include <behaviors/none.dtsi>
#include <behaviors/mod_tap.dtsi>
#include <behaviors/momentary_layer.dtsi>
#include <behaviors/toggle_layer.dtsi>
diff --git a/app/dts/behaviors/none.dtsi b/app/dts/behaviors/none.dtsi
new file mode 100644
index 0000000..e84ed49
--- /dev/null
+++ b/app/dts/behaviors/none.dtsi
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2020 Pete Johanson
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+/ {
+ behaviors {
+ none: behavior_none {
+ compatible = "zmk,behavior-none";
+ label = "NONE";
+ #binding-cells = <0>;
+ };
+ };
+};
diff --git a/app/dts/bindings/behaviors/zmk,behavior-none.yaml b/app/dts/bindings/behaviors/zmk,behavior-none.yaml
new file mode 100644
index 0000000..9c66c94
--- /dev/null
+++ b/app/dts/bindings/behaviors/zmk,behavior-none.yaml
@@ -0,0 +1,8 @@
+# Copyright (c) 2020, Pete Johanson
+# SPDX-License-Identifier: MIT
+
+description: None Binding Behavior
+
+compatible: "zmk,behavior-none"
+
+include: zero_param.yaml
diff --git a/app/src/behaviors/behavior_none.c b/app/src/behaviors/behavior_none.c
new file mode 100644
index 0000000..7e77e54
--- /dev/null
+++ b/app/src/behaviors/behavior_none.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com>
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#define DT_DRV_COMPAT zmk_behavior_none
+
+#include <device.h>
+#include <power/reboot.h>
+#include <drivers/behavior.h>
+#include <logging/log.h>
+
+LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
+
+struct behavior_none_config { };
+struct behavior_none_data { };
+
+static int behavior_none_init(struct device *dev)
+{
+ return 0;
+};
+
+static int on_keymap_binding_pressed(struct device *dev, u32_t position, u32_t _param1, u32_t _param2)
+{
+ return 1;
+}
+
+static int on_keymap_binding_released(struct device *dev, u32_t position, u32_t _param1, u32_t _param2)
+{
+ return 1;
+}
+
+static const struct behavior_driver_api behavior_none_driver_api = {
+ .binding_pressed = on_keymap_binding_pressed,
+ .binding_released = on_keymap_binding_released,
+};
+
+
+static const struct behavior_none_config behavior_none_config = {};
+
+static struct behavior_none_data behavior_none_data;
+
+DEVICE_AND_API_INIT(behavior_none, DT_INST_LABEL(0), behavior_none_init,
+ &behavior_none_data,
+ &behavior_none_config,
+ APPLICATION, CONFIG_KERNEL_INIT_PRIORITY_DEFAULT,
+ &behavior_none_driver_api); \ No newline at end of file
diff --git a/docs/docs/behavior/misc.md b/docs/docs/behavior/misc.md
new file mode 100644
index 0000000..799c91c
--- /dev/null
+++ b/docs/docs/behavior/misc.md
@@ -0,0 +1,41 @@
+---
+title: Miscellaneous
+---
+
+## Summary
+
+There are a few miscellaneous behaviors that are helpful when working with layers in keymaps,
+in particular, with handling what happens in higher layers, and if events are passed to
+the next layer or not
+
+## Transparent
+
+The transparent behavior simply ignores key position presses/releases, so they will be
+passed down to the next active layer in the stack.
+
+### Behavior Binding
+
+- Reference: `&trans`
+- Parameters: None
+
+Example:
+
+```
+&trans
+```
+
+## None
+
+The none behavior simply swallows and stops key position presses/releases, so they will **not**
+be passed down to the next active layer in the stack.
+
+### Behavior Binding
+
+- Reference: `&none`
+- Parameters: None
+
+Example:
+
+```
+&none
+```
diff --git a/docs/sidebars.js b/docs/sidebars.js
index 1bd0358..90bdfa2 100644
--- a/docs/sidebars.js
+++ b/docs/sidebars.js
@@ -10,6 +10,7 @@ module.exports = {
Behaviors: [
"behavior/key-press",
"behavior/layers",
+ "behavior/misc",
"behavior/lighting",
],
Development: [