WebHID (Chrome/Edge). Serve over http://localhost — file:// won't work.
Not connected.
Demo mode — no keyboard connected. Interactions are reflected in the UI but not saved.
Keyboard
Layer:Click a key to change it.
Debounce
Features
Tap dance slots
Disabled slots act as their plain "tap" key.
A slot only affects a physical key if that key is assigned TDn above.
#
name
tap
secondary
mode
tap term
PH
enabled
Timing
Combos
Press all input keys together to emit the output. Needs at least two inputs.
#
key 1
key 2
key 3
key 4
output
on
Key overrides
When trigger + trigger-mods are held (and negative-mods are not), send replacement instead.
#
trigger
replacement
trigger mods
layers
on
Indicators
Lighting
Macros
Presets
Save downloads a .json snapshot; Load applies one (writing only what differs).
Same files work with q1config.py save/load (e.g. pick presets/mine.json).
Reset config = features/tap-dance/indicators; Reset keymap = key assignments.