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 โ
The brand button and the Builder hand-off sit on the left; the tools sit on the right in three clusters โ view, config, history โ separated by thin rules. Many buttons are capability-gated: hidden or disabled unless the connected firmware supports them.
View tools
| Button | Tooltip | Does |
|---|---|---|
| ๐ฅ | 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. |
Config tools
| Button | Tooltip | Does |
|---|---|---|
| โค | 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). |
| โฆ | capability-gated dialogs | Wireless ยท Cluster ยท Unicode input ยท Advanced Mode ยท Timing & Defaults ยท Behaviors ยท Conditional Layers ยท Autocorrect ยท Node & Cluster ยท Link Profile โ see Advanced features. |
| ๐ก | RGB lighting | Open the RGB sheet. Disabled when the firmware drives lighting at compile time only. |
| โง | load a definition | One button per source the connected adapter accepts (e.g. a VIA/Vial layout JSON, a ZMK combo file). |
| โ | Settings | App settings. |
| GitHub Repository | Open the source repo. | |
| Discord Community | Open the Discord invite. | |
| ๐ | Documentation | Open these docs. |
| โฅ | Support this project | Sponsor links โ see Support this project. |
History tools
| Button | Tooltip | Does |
|---|---|---|
| โถ โท | Undo / Redo | History. |
| ๐ | Discard changes | Revert all pending changes. |
| Save | Save keymap to keyboard | Commit changes to the device. With Auto-save on it becomes a pulsing auto-save indicator instead. |
See Advanced features for the dialogs and the Advanced sheet (Macros, Tap Dance, Combos, Key Overrides, Wireless, 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.
