aboutsummaryrefslogtreecommitdiffstats
path: root/keybinds/test_binds.js
AgeCommit message (Collapse)AuthorFilesLines
3 dayscompanion: remove from the tree, archived as tag archive/companionDanilo M.1-2/+0
The chibi 2B companion is retired for now. Its last state is kept in the signed tag archive/companion (the commit before this one), so it can be revisited with `git checkout archive/companion`; hypr-theme carries a tag of the same name for its compositor hooks (typing/delete events and the SUPER+\ bind). Removed with it, since nothing else used them: the Companion, phrases and artists settings pages, the five companion prefs in Prefs.qml and Prefs.ready, the wallpaper heart (Admired.qml's list), the assistant's replied() signal and cardTop, and the keybinds reminder's name for the code:49 bind. The design specs and plans under docs/ stay as history. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9 dayskeybinds: name the companion's code:49 bindDanilo M.1-0/+2
Hyprland 0.56.2 reports a Lua `code:N` bind with key "" and keycode 0 in `hyprctl binds -j`, while the bind itself works, so the reminder printed "Win + " with nothing after it. Such a bind is now named by its description, with "?" for one not listed, so a new keycode bind shows up as a visible gap rather than a blank. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25feat(keybinds): draw the macropad beside the listDanilo M.1-4/+16
The pad glyph on each row was too small to read. The left fifth of the overlay now draws the pad at size, each key labelled with its plain action; hovering a key or an encoder lists everything it does, held keys and turn direction spelled out. padActions() in Binds.js inverts the grouped rows into that per-key list, and PAD's turn values became words for it. The panel is pinned at a fixed height: centred, it moved whenever the hovered key's list changed length. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25feat(keybinds): show where a bind sits on the macropadDanilo M.1-3/+12
The macropad's firmware sends ordinary combos, so the overlay listed them as keyboard shortcuts nobody presses. A PAD table in Binds.js maps each combo to its key (1-12) or encoder (top or bottom, turned or pressed) and what is held with it, and the row draws the pad small with that key lit. The workspace row is built in a loop, as it is in keybindings.lua. Every entry was checked against hyprctl binds -j. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25feat(keybinds): show mnemonic names for obscure keysDanilo M.1-8/+12
Hyprland's key names are its own (mouse:272, XF86Calculator), not what is printed on the keyboard or how the key is pressed, which defeats a reminder. A fixed map in Binds.js renames them for display only; an unlisted key shows as before. SUPER reads as Win for the same reason. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25fix(keybinds): survive group names shadowing Object.prototypeDanilo M.1-0/+6
A description like "toString: X" made byName["toString"] resolve to the inherited Object.prototype.toString instead of undefined, so the group was never created and .rows.push threw. Object.create(null) gives byName no prototype to shadow. Also note in a comment that CAPS/MOD2/MOD3/MOD5 modmask bits are not decoded and silently drop from the combo string. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25feat(keybinds): group hyprctl binds by descriptionDanilo M.1-0/+45
Binds.js parses hyprctl binds -j output into display groups for the upcoming keybind reminder overlay. Group name and row label come from the "Group: Label" convention in each bind's description; a bind without one still surfaces under "Undescribed" rather than vanishing, so a gap in the Hyprland config stays visible. Pure functions with no QML dependency, so test_binds.js checks them directly with node, stripping the .pragma library line the QML runtime requires but node does not understand. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>