feat(behaviors): Add &none behavior
This commit is contained in:
parent
d7dee20e8d
commit
63e02d60dc
7 changed files with 115 additions and 0 deletions
|
@ -39,6 +39,7 @@ target_sources(app PRIVATE src/behaviors/behavior_reset.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_mod_tap.c)
|
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_momentary_layer.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_transparent.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(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_RGB_UNDERGLOW app PRIVATE src/behaviors/behavior_rgb_underglow.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/ble.c)
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/ble.c)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include <behaviors/key_press.dtsi>
|
#include <behaviors/key_press.dtsi>
|
||||||
#include <behaviors/transparent.dtsi>
|
#include <behaviors/transparent.dtsi>
|
||||||
|
#include <behaviors/none.dtsi>
|
||||||
#include <behaviors/mod_tap.dtsi>
|
#include <behaviors/mod_tap.dtsi>
|
||||||
#include <behaviors/momentary_layer.dtsi>
|
#include <behaviors/momentary_layer.dtsi>
|
||||||
#include <behaviors/reset.dtsi>
|
#include <behaviors/reset.dtsi>
|
||||||
|
|
15
app/dts/behaviors/none.dtsi
Normal file
15
app/dts/behaviors/none.dtsi
Normal file
|
@ -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>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
8
app/dts/bindings/behaviors/zmk,behavior-none.yaml
Normal file
8
app/dts/bindings/behaviors/zmk,behavior-none.yaml
Normal file
|
@ -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
|
48
app/src/behaviors/behavior_none.c
Normal file
48
app/src/behaviors/behavior_none.c
Normal file
|
@ -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);
|
41
docs/docs/behavior/misc.md
Normal file
41
docs/docs/behavior/misc.md
Normal file
|
@ -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
|
||||||
|
```
|
|
@ -10,6 +10,7 @@ module.exports = {
|
||||||
Behaviors: [
|
Behaviors: [
|
||||||
"behavior/key-press",
|
"behavior/key-press",
|
||||||
"behavior/layers",
|
"behavior/layers",
|
||||||
|
"behavior/misc",
|
||||||
"behavior/lighting",
|
"behavior/lighting",
|
||||||
],
|
],
|
||||||
Development: [
|
Development: [
|
||||||
|
|
Loading…
Reference in a new issue