felixzsh 68a75c2ab5 fix(ui): auto-size config panel to content width
The config panel used a fixed contentWidth of Style.space(250), the
narrowest of all omarchy panels. With a wider font the Filter row (label
"Filter" plus the All keys / Bindings buttons) no longer fit and the
label overlapped the buttons. Derive contentWidth from the Filter row's
implicit width (label + gap + buttons) plus padding and borders, capped
to the available screen via fittedContentWidth, so the panel grows or
shrinks with the font.
2026-08-26 18:03:51 -05:00
2026-08-11 09:53:48 -05:00
2026-08-11 09:53:48 -05:00
2026-08-24 14:19:30 -05:00
2026-08-12 11:52:18 -05:00

Omarchy Key Visualizer

A tiny Omarchy plugin that shows the keys you press on screen — no keycap images, no fuss. Great for keybinding tutorials, demos and screencasts.

Preview

Key Visualizer preview

Combo mode in action

Install

omarchy plugin add https://github.com/felixzsh/omarchy-key-visualizer --enable

You'll be asked where to put the bar widget (or add --section right). That's it: the panel shows the keys and the keyboard glyph in the bar opens the menu. On first load the plugin adds a small hook to your ~/.config/hypr/hyprland.lua (safe to remove) and Hyprland reloads it on its own — no manual steps.

Notes

  • If the glyph doesn't appear right after enabling, run omarchy-shell shell rescanPlugins.
  • If the display looks stale after an update, omarchy restart shell reloads everything fresh.
  • Updates: omarchy plugin update felixzsh.key-visualizer.

Bar widget

The keyboard glyph (right section by default) opens a small menu:

  • Show keys — pause/resume the display.
  • FilterAll keys or Bindings only (only combos with a modifier).
  • Position — six placements (top/bottom × left/center/right).
  • Linger — how long a released combo stays, 010s; 0 keeps it until the next key.
  • History — how many combos stack on screen (15); older ones fade.
  • Combo mode — turns the display into a game counter with score and effects (see below).

You can also drive it from the terminal:

omarchy-shell key-visualizer toggle
omarchy-shell key-visualizer pause
omarchy-shell key-visualizer resume

Behavior

  • Typing — shows the character: g, G, !, 5.
  • Combos — modifiers plus the key, shown as a unit: Super Shift G. The combination stays intact no matter the order you release it.
  • Non-printing keys — labeled: Esc, Tab, F1, arrows, Space.
  • Shift is folded into the character: Shift + 1 shows !.
  • After release, the combo lingers briefly (1s by default) and vanishes; a Linger of 0 keeps it until the next key.
  • History — the last few combos stack instead of vanishing, with older ones fading out. Top positions stack downward, bottom positions upward.
  • Combo mode — a game counter. Combos with modifiers score points and build a streak (multiplier up to ×8); plain typing scores a little too. The banner shows COMBO 12 ×3 · 3,450. The longer the streak, the bigger the effects: pulsing, color shifts, screen shake — and at high streaks a constant vibration. Stop for a moment and the streak resets; when the display fades away, the score resets too.
  • Bindings only — shows only combos with a modifier; plain typing stays off screen.

Customize

Options live in ~/.config/omarchy/key-visualizer.json and apply live:

{
  "mode": "all",
  "position": "bottom-center",
  "margin": 67,
  "lingerMs": 1000,
  "historyCount": 1,
  "comboMode": false
}
Option What it does Default
mode all or bindings (only combos with a modifier) all
position top-leftbottom-right bottom-center
margin distance from the screen edge (px) 67
lingerMs how long a released combo stays; 0 = keep until the next key 1000
historyCount combos stacked on screen (15) 1
comboMode game counter, score and effects false

Roadmap

  • Layout-aware key symbols (xkbcommon) instead of the static US table.
  • Per-monitor placement.

License

MIT

S
Description
No description provided
Readme MIT 1.4 MiB
Languages
QML 86%
Lua 14%