| `label` | string | Unique label for the node | |
| `rows` | int | The number rows of in the composite matrix | |
| `cols` | int | The number columns of in the composite matrix | |
| `rows` | int | The number of rows in the composite matrix | |
| `cols` | int | The number of columns in the composite matrix | |
The `zmk,kscan-composite` node should have one child node per keyboard scan driver that should be composited. Each child node can have the following properties:
| `label` | string | Unique label for the node | |
| `event-period` | int | Milliseconds between each generated event | |
| `events` | array | List of key events to simulate | |
| `rows` | int | The number rows of in the composite matrix | |
| `cols` | int | The number columns of in the composite matrix | |
| `rows` | int | The number of rows in the composite matrix | |
| `cols` | int | The number of columns in the composite matrix | |
| `exit-after` | bool | Exit the program after running all events | false |
The `events` array should be defined using the macros from [dt-bindings/zmk/kscan_mock.h](https://github.com/zmkfirmware/zmk/blob/main/app/include/dt-bindings/zmk/kscan_mock.h).
@ -157,6 +157,8 @@ this might look something like:
@@ -157,6 +157,8 @@ this might look something like:
};
```
See the [Keyboard Scan configuration documentation](../config/kscan.md) for details on configuring the KSCAN driver.
</TabItem>
<TabItemvalue="split">
@ -260,6 +262,8 @@ This is exemplified with the iris .overlay files.
@@ -260,6 +262,8 @@ This is exemplified with the iris .overlay files.
```
See the [Keyboard Scan configuration documentation](../config/kscan.md) for details on configuring the KSCAN driver.
### .conf files (Split Shields)
While unibody boards only have one .conf file that applies configuration characteristics to the entire keyboard,
@ -341,6 +345,8 @@ Some important things to note:
@@ -341,6 +345,8 @@ Some important things to note:
- `RC(row, column)` is placed sequentially to define what row and column values that position corresponds to.
- If you have a keyboard with options for `2u` keys in certain positions, or break away portions, it is a good idea to set the chosen `zmk,matrix_transform` to the default arrangement, and include _other_ possible matrix transform nodes in the devicetree that users can select in their user config by overriding the chosen node.
See the [matrix transform section](../config/kscan.md#matrix-transform) in the Keyboard Scan configuration documentation for details and more examples of matrix transforms.
## Default Keymap
Each keyboard should provide an OOTB default keymap to be used when building the firmware, which can be overridden and customized by user configs. For "shield keyboards", this should be placed in the `app/boards/shields/<shield_name>/<shield_name>.keymap` file. The keymap is configured as an additional devicetree overlay that includes the following: