The most basic of behaviors, is the ability to send certain keycode presses and releases in response to activating a certain key.
For reference on keycode values, see pages 83-89 of the USB HID Usage Tables.
To make it easier to encode the HID keycode numeric values, most keymaps include
provided by ZMK near the top:
Doing so makes a set of defines such as
NUM_1, etc. available for use with these behaviors
There is an open issue to provide a more comprehensive, and complete set of defines for the full keypad and consumer usage pages in the future for ZMK.
Improperly defined keymap -
dtlib.DTError: <board>.dts.pre.tmp:<line number>
When compiling firmware from a keymap, it may be common to encounter an error in the form of a
dtlib.DTError: <board>.dts.pre.tmp:<line number>.
For instructions to resolve such an error, click here
Keypad Key Press
The "keypad key press" behavior sends standard keypad keycodes on press/release.
- Parameter: The keycode usage ID from the keypad usage page, e.g.
Consumer Key Press
The "consumer key press" behavior allows you to send "consumer" usage page keycodes on press/release. These are mostly used for media and power related keycodes, such as sending "Pause", "Scan Track Next", "Scan Track Previous", etc.
There are a subset of the full consumer usage IDs found in the
keys.h include, prefixed with
- Parameter: The keycode usage ID from the consumer usage page, e.g.