| Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|