Supported keyboards and keymap formats
daken parses major keymap formats from ZMK and QMK in the browser. This page summarizes what's supported and how to use it with your own board.
ZMK vs QMK at a glance
| Aspect | ZMK | QMK |
|---|---|---|
| Target | Mostly wireless (nRF52) | Mostly wired |
| Keymap syntax | DTS (Devicetree) | C header / JSON |
| Config file | .keymap | keymap.c / keymap.json |
ZMK .keymap
.keymap is DTS (Devicetree Source). daken runs a lightweight DTS parser to read the keymap node and layers, then converts bindings into its internal schema.
config/<board>.keymap # e.g. config/corne.keymap
QMK keymap.json
Export from QMK Configurator or grab keymap.json from your qmk_firmware tree. daken normalizes the keycode strings and renders them just like ZMK.
keyboards/<board>/keymaps/<you>/keymap.json
Only have a QMK keymap.c?
daken reads keymap.json only — C sources are not supported. Two ways to get JSON:
- QMK CLI: run
qmk c2json keymap.c(fastest if you already have a QMK dev environment) - QMK Configurator: rebuild your keymap on config.qmk.fm and hit Export. No setup required, but you transfer the keymap by hand
Supported bindings
Common bindings are rendered in a readable form: kp, mt, lt, mo, to, and trans / none. Anything else (such as Bluetooth bt bindings) is shown as its raw behavior name and parameters, so nothing in your keymap disappears from view. See the glossary for what each binding means.
Physical layouts
- JSON upload: load a layout JSON extracted from ZMK
matrix_transformor QMKinfo.jsonfor any board. - Without a layout JSON, daken shows the base layer on a standard keyboard.
Expected structure:
{
"keyboard": "my_board",
"layouts": {
"LAYOUT": {
"layout": [
{ "x": 0, "y": 0.25 },
{ "x": 1, "y": 0.125, "w": 1, "h": 1 },
...
]
}
}
}x / y are key-unit coordinates, w / h (default 1) are key size, and r is rotation. With multiple variants, the first one is used. The i-th key in the array maps to the i-th binding in your keymap — if the order differs, keys will appear in the wrong place.
Where to get your keymap file
- ZMK: download the
.keymapfrom theconfig/directory of yourzmk-config-<your-name>repository on GitHub - QMK: use the Export button on QMK Configurator to get a
keymap.json, or grab the one underqmk_firmware/keyboards/directly
Troubleshooting checklist
- Check the format: ZMK needs
.keymap(DTS), QMK needs.json. Convertkeymap.cas described above - Load files as-is, without editing — straight from your zmk-config repo or a Configurator export
- Keys appearing in the wrong place? Verify the layout JSON key order matches your bindings order
- Still stuck? Report the board and file via the contact page so the parser can be improved