aboutsummaryrefslogtreecommitdiffstats
path: root/keybinds/Binds.js
AgeCommit message (Collapse)AuthorFilesLines
7 daysfeat(keybinds): draw the macropad beside the listDanilo M.1-12/+30
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>
7 daysfeat(keybinds): show where a bind sits on the macropadDanilo M.1-1/+40
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>
7 daysfeat(keybinds): show mnemonic names for obscure keysDanilo M.1-2/+22
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>
7 daysfix(keybinds): survive group names shadowing Object.prototypeDanilo M.1-1/+3
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>
7 daysfeat(keybinds): group hyprctl binds by descriptionDanilo M.1-0/+50
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>