The keymap editor โ
The keymap editor is where you assign bindings against a device โ a real connected keyboard, or a simulated one. It is the surface you land on after connecting hardware, and where the builder hands off when you click Editor.
๐ท Screenshot slot โ docs/public/images/editor/editor.png
The editor: the LAYERS sidebar, the keyboard in the centre, the header toolbar, and the binding inspector on the right.
The surface โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Header: Remappr ยท [Builder] โ Heatmap Live KeyTest Stats โ โฆ โ
โ โฆ Flash ยท Macros ยท Wireless ยท RGB ยท โ โ โถ โท ๐ Save โ
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโค
โ LAYERS โ keyboard โ Inspector โ
โ โข L0 โ (click a key to edit) โ "Select a key โ
โ โข L1 โ โ to edit its โ
โ โข L2 โ โ action." โ
โโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโHeader toolbar โ
Left โ right (each button shows the tooltip in quotes; many are capability-gated โ hidden or disabled unless the connected firmware supports them):
| Button | Tooltip | Does |
|---|---|---|
| Remappr | Back to devices | Disconnect, return to the Start Page. |
| Builder | Back to Builder | Only when you came from the builder. |
| ๐ฅ | Heatmap | Toggle a key-press heatmap. |
| โก | Live view | Highlight keys as you press them. |
| โฅ | Key test | Hardware matrix test mode (gated: keyTest). |
| ๐ | Typing load stats | Open the load-stats modal. |
| โค | Flash & export config | Open the export modal. |
| โ | Dynamic Entries | Open the Advanced sheet at Tap Dance (gated: dynamic). |
| โฆ | Macros | Open the Advanced sheet at Macros (gated: macros). |
| ๐ถ | Wireless | Wireless settings (gated: wireless). |
| โ | Advanced Mode | Debounce / report-rate settings (gated: advanced). |
| ๐ก | RGB lighting | Open the RGB sheet. Disabled on ZMK ("RGB lighting not supported on ZMK"). |
| โ | Settings | App settings. |
| โถ โท | Undo / Redo | History. |
| ๐ | Discard changes | Revert all pending changes. |
| Save | Save keymap to keyboard | Commit changes to the device. Shows Saved with a dot when there are unsaved edits. |
See Advanced features for Macros, Tap Dance, Combos, Key Overrides, Wireless and Advanced Mode.
Layers โ
The LAYERS sidebar lists layers with an accent dot and an L0/L1 badge.
- Click to select; the keyboard shows that layer.
- + (Add Layer) appends a layer.
- The per-layer โฎ menu: Rename (opens the "New Layer Name" dialog), Duplicate, Delete (disabled when it is the only layer).
- Drag the grip handle ("Drag to reorder") to reorder layers.
Editing a binding โ
Click a key โ the Inspector shows the key (a tinted cap preview + its category and layer) with the binding picker. Closing the picker keeps the key selected (a floating card with an Edit button stays); Esc clears the selection entirely.
- Empty state: "Select a key to edit its action."
- Encoders: the inspector reads/writes CW and CCW separately ("Encoder {slot} โ CW/CCW").
- Tap-dance: when the device supports dynamic entries, an "Edit tap-dance #{n}โฆ" button opens the tap-dance editor.
Every change writes to the device immediately and is undoable; nothing is permanent until you Save.
Heatmap, Live view & Key test โ
These overlay the keyboard:
- Heatmap โ colours keys by press count, with a Less โ More legend and a Reset press counts button; "View load stats" opens the stats modal.
- Live view โ lights keys as you press them.
- Key test โ "Press every key" with a
{seen} / {total}counter and a Reset key test button. The status line reads Hardware matrix (reading the switch matrix over the wire) or OS events (fallback via OS key events โ focus-dependent, misses non-emitting keys).
Editor vs builder โ
| Builder | Editor | |
|---|---|---|
| Target | A design (no hardware needed) | A device (real or simulated) |
| Edits | Layout, matrix, controller, layers, bindings | Bindings, device settings, per-key RGB |
| Output | Exported firmware project | Live changes on the device (Save to commit) |
Both read and write the same JSON keymap config.
