forked from kofal.net/zmk
feat(endpoints): add preferred endpoint setting
Added a new setting to remember the user's preferred endpoint. When both USB and
BLE are connected, the preferred endpoint will be used.
Added a new behavior to control this setting. It supports commands:
&end END_USB - Prefer USB output
&end END_BLE - Prefer BLE output
&end END_TOG - Toggle between USB and BLE
This commit is contained in:
59
docs/docs/behavior/endpoints.md
Normal file
59
docs/docs/behavior/endpoints.md
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
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
|
||||
```
|
||||
@@ -22,6 +22,7 @@ module.exports = {
|
||||
"behavior/mod-tap",
|
||||
"behavior/reset",
|
||||
"behavior/bluetooth",
|
||||
"behavior/endpoints",
|
||||
"behavior/lighting",
|
||||
"behavior/power",
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user