feat(endpoints): rename behavior to outputs
"Outputs" is probably easier for most people to understand than "endpoints".
This commit is contained in:
parent
600bba25f0
commit
2fe1fbb526
11 changed files with 96 additions and 96 deletions
|
@ -39,11 +39,11 @@ target_sources(app PRIVATE src/events/sensor_event.c)
|
||||||
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/ble_active_profile_changed.c)
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/ble_active_profile_changed.c)
|
||||||
target_sources_ifdef(CONFIG_USB app PRIVATE src/events/usb_conn_state_changed.c)
|
target_sources_ifdef(CONFIG_USB app PRIVATE src/events/usb_conn_state_changed.c)
|
||||||
if (NOT CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL)
|
if (NOT CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_endpoints.c)
|
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
|
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_reset.c)
|
target_sources(app PRIVATE src/behaviors/behavior_reset.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_hold_tap.c)
|
target_sources(app PRIVATE src/behaviors/behavior_hold_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_outputs.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_toggle_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_transparent.c)
|
||||||
target_sources(app PRIVATE src/behaviors/behavior_none.c)
|
target_sources(app PRIVATE src/behaviors/behavior_none.c)
|
||||||
|
|
|
@ -10,4 +10,4 @@
|
||||||
#include <behaviors/rgb_underglow.dtsi>
|
#include <behaviors/rgb_underglow.dtsi>
|
||||||
#include <behaviors/bluetooth.dtsi>
|
#include <behaviors/bluetooth.dtsi>
|
||||||
#include <behaviors/ext_power.dtsi>
|
#include <behaviors/ext_power.dtsi>
|
||||||
#include <behaviors/endpoints.dtsi>
|
#include <behaviors/outputs.dtsi>
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
/ {
|
|
||||||
behaviors {
|
|
||||||
end: behavior_endpoints {
|
|
||||||
compatible = "zmk,behavior-endpoints";
|
|
||||||
label = "ENDPOINTS";
|
|
||||||
#binding-cells = <1>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
9
app/dts/behaviors/outputs.dtsi
Normal file
9
app/dts/behaviors/outputs.dtsi
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
/ {
|
||||||
|
behaviors {
|
||||||
|
out: behavior_outputs {
|
||||||
|
compatible = "zmk,behavior-outputs";
|
||||||
|
label = "OUTPUTS";
|
||||||
|
#binding-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -3,8 +3,8 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
#
|
#
|
||||||
|
|
||||||
description: Endpoints Behavior
|
description: Output Selection Behavior
|
||||||
|
|
||||||
compatible: "zmk,behavior-endpoints"
|
compatible: "zmk,behavior-outputs"
|
||||||
|
|
||||||
include: one_param.yaml
|
include: one_param.yaml
|
|
@ -1,13 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2020 The ZMK Contributors
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define ENDPOINT_TOGGLE_CMD 0
|
|
||||||
#define ENDPOINT_USB_CMD 1
|
|
||||||
#define ENDPOINT_BLE_CMD 2
|
|
||||||
|
|
||||||
#define END_TOG ENDPOINT_TOGGLE_CMD
|
|
||||||
#define END_USB ENDPOINT_USB_CMD
|
|
||||||
#define END_BLE ENDPOINT_BLE_CMD
|
|
13
app/include/dt-bindings/zmk/outputs.h
Normal file
13
app/include/dt-bindings/zmk/outputs.h
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define OUTPUT_TOGGLE_CMD 0
|
||||||
|
#define OUTPUT_USB_CMD 1
|
||||||
|
#define OUTPUT_BLE_CMD 2
|
||||||
|
|
||||||
|
#define OUT_TOG OUTPUT_TOGGLE_CMD
|
||||||
|
#define OUT_USB OUTPUT_USB_CMD
|
||||||
|
#define OUT_BLE OUTPUT_BLE_CMD
|
|
@ -4,13 +4,13 @@
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define DT_DRV_COMPAT zmk_behavior_endpoints
|
#define DT_DRV_COMPAT zmk_behavior_outputs
|
||||||
|
|
||||||
#include <device.h>
|
#include <device.h>
|
||||||
#include <devicetree.h>
|
#include <devicetree.h>
|
||||||
#include <drivers/behavior.h>
|
#include <drivers/behavior.h>
|
||||||
|
|
||||||
#include <dt-bindings/zmk/endpoints.h>
|
#include <dt-bindings/zmk/outputs.h>
|
||||||
|
|
||||||
#include <zmk/behavior.h>
|
#include <zmk/behavior.h>
|
||||||
#include <zmk/endpoints.h>
|
#include <zmk/endpoints.h>
|
||||||
|
@ -21,24 +21,24 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
||||||
static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding,
|
static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding,
|
||||||
struct zmk_behavior_binding_event event) {
|
struct zmk_behavior_binding_event event) {
|
||||||
switch (binding->param1) {
|
switch (binding->param1) {
|
||||||
case ENDPOINT_TOGGLE_CMD:
|
case OUTPUT_TOGGLE_CMD:
|
||||||
return zmk_endpoints_toggle();
|
return zmk_endpoints_toggle();
|
||||||
case ENDPOINT_USB_CMD:
|
case OUTPUT_USB_CMD:
|
||||||
return zmk_endpoints_select(ZMK_ENDPOINT_USB);
|
return zmk_endpoints_select(ZMK_ENDPOINT_USB);
|
||||||
case ENDPOINT_BLE_CMD:
|
case OUTPUT_BLE_CMD:
|
||||||
return zmk_endpoints_select(ZMK_ENDPOINT_BLE);
|
return zmk_endpoints_select(ZMK_ENDPOINT_BLE);
|
||||||
default:
|
default:
|
||||||
LOG_ERR("Unknown endpoints command: %d", binding->param1);
|
LOG_ERR("Unknown output command: %d", binding->param1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return -ENOTSUP;
|
return -ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int behavior_ep_init(struct device *dev) { return 0; }
|
static int behavior_out_init(struct device *dev) { return 0; }
|
||||||
|
|
||||||
static const struct behavior_driver_api behavior_endpoints_driver_api = {
|
static const struct behavior_driver_api behavior_outputs_driver_api = {
|
||||||
.binding_pressed = on_keymap_binding_pressed,
|
.binding_pressed = on_keymap_binding_pressed,
|
||||||
};
|
};
|
||||||
|
|
||||||
DEVICE_AND_API_INIT(behavior_end, DT_INST_LABEL(0), behavior_ep_init, NULL, NULL, APPLICATION,
|
DEVICE_AND_API_INIT(behavior_out, DT_INST_LABEL(0), behavior_out_init, NULL, NULL, APPLICATION,
|
||||||
CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_endpoints_driver_api);
|
CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &behavior_outputs_driver_api);
|
|
@ -1,59 +0,0 @@
|
||||||
---
|
|
||||||
title: Endpoint Behavior
|
|
||||||
sidebar_label: Endpoints
|
|
||||||
---
|
|
||||||
|
|
||||||
## Summary
|
|
||||||
|
|
||||||
The endpoint behavior allows selecting whether keyboard input is sent to the
|
|
||||||
USB or bluetooth connection when both are connected. This allows connecting a
|
|
||||||
keyboard to USB for power but sending input to a different device over bluetooth.
|
|
||||||
|
|
||||||
By default, keyboard input is sent to USB when both endpoints are connected.
|
|
||||||
Once you select a different endpoint, it will be remembered until you change it again.
|
|
||||||
|
|
||||||
## Endpoints Command Defines
|
|
||||||
|
|
||||||
Endpoints command defines are provided through the [`dt-bindings/zmk/endpoints.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/endpoints.h)
|
|
||||||
header, which is added at the top of the keymap file:
|
|
||||||
|
|
||||||
```
|
|
||||||
#include <dt-bindings/zmk/endpoints.h>
|
|
||||||
```
|
|
||||||
|
|
||||||
This allows you to reference the actions defined in this header:
|
|
||||||
|
|
||||||
| Define | Action | Alias |
|
|
||||||
| --------------------- | ---------------------------------------------------- | --------- |
|
|
||||||
| `ENDPOINT_USB_CMD` | Send keyboard input to USB | `END_USB` |
|
|
||||||
| `ENDPOINT_BLE_CMD` | Send keyboard input to the current bluetooth profile | `END_BLE` |
|
|
||||||
| `ENDPOINT_TOGGLE_CMD` | Toggle between USB and BLE | `END_TOG` |
|
|
||||||
|
|
||||||
## Endpoints Behavior
|
|
||||||
|
|
||||||
The endpoints behavior changes the preferred endpoint on press.
|
|
||||||
|
|
||||||
### Behavior Binding
|
|
||||||
|
|
||||||
- Reference: `&end`
|
|
||||||
- Parameter #1: Command, e.g. `END_BLE`
|
|
||||||
|
|
||||||
### Example:
|
|
||||||
|
|
||||||
1. Behavior binding to prefer sending keyboard input to USB
|
|
||||||
|
|
||||||
```
|
|
||||||
&end END_USB
|
|
||||||
```
|
|
||||||
|
|
||||||
1. Behavior binding to prefer sending keyboard input to the current bluetooth profile
|
|
||||||
|
|
||||||
```
|
|
||||||
&end END_BLE
|
|
||||||
```
|
|
||||||
|
|
||||||
1. Behavior binding to toggle between preferring USB and BLE
|
|
||||||
|
|
||||||
```
|
|
||||||
&end END_TOG
|
|
||||||
```
|
|
59
docs/docs/behavior/outputs.md
Normal file
59
docs/docs/behavior/outputs.md
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
---
|
||||||
|
title: Output Selection Behavior
|
||||||
|
sidebar_label: Output Selection
|
||||||
|
---
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
The output behavior allows selecting whether keyboard output is sent to the
|
||||||
|
USB or bluetooth connection when both are connected. This allows connecting a
|
||||||
|
keyboard to USB for power but outputting to a different device over bluetooth.
|
||||||
|
|
||||||
|
By default, output is sent to USB when both USB and BLE are connected.
|
||||||
|
Once you select a different output, it will be remembered until you change it again.
|
||||||
|
|
||||||
|
## Output Command Defines
|
||||||
|
|
||||||
|
Output command defines are provided through the [`dt-bindings/zmk/outputs.h`](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/outputs.h)
|
||||||
|
header, which is added at the top of the keymap file:
|
||||||
|
|
||||||
|
```
|
||||||
|
#include <dt-bindings/zmk/outputs.h>
|
||||||
|
```
|
||||||
|
|
||||||
|
This allows you to reference the actions defined in this header:
|
||||||
|
|
||||||
|
| Define | Action | Alias |
|
||||||
|
| ------------------- | ----------------------------------------------- | --------- |
|
||||||
|
| `OUTPUT_USB_CMD` | Prefer sending to USB | `OUT_USB` |
|
||||||
|
| `OUTPUT_BLE_CMD` | Prefer sending to the current bluetooth profile | `OUT_BLE` |
|
||||||
|
| `OUTPUT_TOGGLE_CMD` | Toggle between USB and BLE | `OUT_TOG` |
|
||||||
|
|
||||||
|
## Output Selection Behavior
|
||||||
|
|
||||||
|
The output selection behavior changes the preferred output on press.
|
||||||
|
|
||||||
|
### Behavior Binding
|
||||||
|
|
||||||
|
- Reference: `&out`
|
||||||
|
- Parameter #1: Command, e.g. `OUT_BLE`
|
||||||
|
|
||||||
|
### Example:
|
||||||
|
|
||||||
|
1. Behavior binding to prefer sending keyboard output to USB
|
||||||
|
|
||||||
|
```
|
||||||
|
&out OUT_USB
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Behavior binding to prefer sending keyboard output to the current bluetooth profile
|
||||||
|
|
||||||
|
```
|
||||||
|
&out OUT_BLE
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Behavior binding to toggle between preferring USB and BLE
|
||||||
|
|
||||||
|
```
|
||||||
|
&out OUT_TOG
|
||||||
|
```
|
|
@ -22,7 +22,7 @@ module.exports = {
|
||||||
"behavior/mod-tap",
|
"behavior/mod-tap",
|
||||||
"behavior/reset",
|
"behavior/reset",
|
||||||
"behavior/bluetooth",
|
"behavior/bluetooth",
|
||||||
"behavior/endpoints",
|
"behavior/outputs",
|
||||||
"behavior/lighting",
|
"behavior/lighting",
|
||||||
"behavior/power",
|
"behavior/power",
|
||||||
],
|
],
|
||||||
|
|
Loading…
Add table
Reference in a new issue