Skip to content

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):

ButtonTooltipDoes
RemapprBack to devicesDisconnect, return to the Start Page.
BuilderBack to BuilderOnly when you came from the builder.
๐Ÿ”ฅHeatmapToggle a key-press heatmap.
โšกLive viewHighlight keys as you press them.
โ–ฅKey testHardware matrix test mode (gated: keyTest).
๐Ÿ“ŠTyping load statsOpen the load-stats modal.
โค“Flash & export configOpen the export modal.
โ‡„Dynamic EntriesOpen the Advanced sheet at Tap Dance (gated: dynamic).
โœฆMacrosOpen the Advanced sheet at Macros (gated: macros).
๐Ÿ“ถWirelessWireless settings (gated: wireless).
โ“˜Advanced ModeDebounce / report-rate settings (gated: advanced).
๐Ÿ’กRGB lightingOpen the RGB sheet. Disabled on ZMK ("RGB lighting not supported on ZMK").
โš™SettingsApp settings.
โ†ถ โ†ทUndo / RedoHistory.
๐Ÿ—‘Discard changesRevert all pending changes.
SaveSave keymap to keyboardCommit 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 โ€‹

BuilderEditor
TargetA design (no hardware needed)A device (real or simulated)
EditsLayout, matrix, controller, layers, bindingsBindings, device settings, per-key RGB
OutputExported firmware projectLive changes on the device (Save to commit)

Both read and write the same JSON keymap config.

Next โ€‹

Apache-2.0. Originally forked from ZMK Studio; application layer fully rewritten.