You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Custom key labels. Rename what any key shows on the board — name a layer key
("Nav", "Sym"), spell out a cryptic keysym, or annotate a macro — without changing the
binding. Labels are stored as keyd-safe # keyd-viz: comment lines, so they survive a
round-trip through keyd untouched and a plain keyd install simply ignores them.
Edit mode (visual config editing). An explicit edit toggle turns the viewer
into an editor for the displayed config: click a key, then set its binding by typing
it, pressing the key you want (capture), or searching keyd's full key list
(pick…); watch the board re-render live, then persist. You can also make a key dual-function (tap/hold) — a hold layer/modifier + a tap key, chosen by an
outcome-labelled "feel" rather than raw timeouts — unbind a key so keyd stops
remapping it, and get an inline warning when a binding activates a layer the config
never defines (keyd would reject it). The editor is line-faithful — untouched lines
round-trip byte-for-byte — and any file it can't reproduce exactly (or that keyd would
reject) stays view-only rather than risk clobbering it. Persist via save draft
(writes to ~/.config/keyd-viz/drafts/ with copy-paste install steps, a diff, and a keyd check verdict) — works on every install, including the AppImage.
One-click apply with auto-revert (AUR/source installs).Apply to /etc/keyd…
hands the edited config to keydviz-apply, a new one-shot privileged tool invoked
via polkit (pkexec; a password per apply, by design). It validates with keyd check, writes atomically with a timestamped backup, reloads keyd, and then
arms a dead-man's switch: only clicking KEEP within the countdown makes the
change permanent — timeout, closing the app, or a crash automatically restores the
previous config and reloads. command()/macro() configs require an extra explicit
confirmation first. keyd's panic sequence (Backspace+Escape+Enter) remains the
always-available failsafe and is surfaced in the UI during the countdown.
Richer editing — chords, macros, daemon options, and layers. Beyond simple
remaps, edit mode now builds chords (press key1+key2 → an action), a structured macro editor (key / typed-text / chord / delay steps, with repeat),
and the [global] daemon options (overload/timeout/etc., with unit-aware fields).
You can create, rename, and delete layers, and create a fresh config for an
unconfigured keyboard or delete an existing one — both through the same vetted
one-click apply path.
Discoverable layer actions. A dedicated layer key-mode lets you point a key — or
a chord — at a layer and pick how it activates: momentary (active while held), toggle (latches on/off), or one-shot (applies to the next key only), without
hand-writing layer()/toggle()/oneshot(). Dual-function (tap/hold) keys now also
surface the home-row-mod "feel", so a hold-for-modifier / tap-for-letter key is set by
the outcome you want rather than raw timeouts.
Backup and restore for applied configs. Every one-click apply leaves a timestamped
backup; a restore panel lists them newest-first and rolls any one back through the same
validate-write-reload-countdown path (so a restore is as safe as an apply).
Composite layer overlays in the viewer. A layer defined as a composite of others
([a+b]) now renders as an overlay of its constituents, so the board shows what the
combined layer actually produces.