fix(keybinds): SUPER+? bind uses base keysym slash, not question
All checks were successful
Check / eval (push) Successful in 3m10s

Item 32. Item 26 added SHIFT to the modmask but kept the shifted keysym
`question`, so the bind stayed dead. Hyprland 0.55 resolves a bind's
keysym with SHIFT consumed (issue #7750, behaviour since 0.43): with
Shift held, `$mod SHIFT, question` is matched against `slash` and never
fires. The base keysym is what works — same pattern as this file's own
`$mod SHIFT, 1` workspace binds. Also updates rofi.nix prettyKeys to
collapse "SHIFT + /" → "?" so the cheatsheet row still reads "SUPER + ?".

Verified: V0 `nix flake check --no-build` green; V1 HM activation built,
built hyprland.conf carries `bind=$mod SHIFT, slash, exec, nomarchy-menu
keybinds` (kb_layout=us → slash is `?`). The keypress opening the menu is
V3 — queued (HARDWARE-QUEUE, existing SUPER+? entry updated).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-08 13:59:02 +01:00
parent 60c6f14c08
commit b1cf10ff06
5 changed files with 40 additions and 20 deletions

View File

@@ -129,10 +129,10 @@ let
key = lib.replaceStrings
[ "question" "slash" "left" "right" "up" "down" ]
[ "?" "/" "" "" "" "" ] b.key;
# ? already implies Shift — the bind needs SHIFT in its modmask
# (keybinds.nix), but showing it would read double, so collapse
# "SHIFT + ?" back to the documented "?".
in lib.replaceStrings [ "SHIFT + ?" ] [ "?" ] (prefix + key);
# The bind is `SHIFT + slash` (base keysym; keybinds.nix), which
# renders "SHIFT + /". `?` IS Shift+/, so collapse that back to the
# single documented glyph — the cheatsheet reads "SUPER + ?".
in lib.replaceStrings [ "SHIFT + /" ] [ "?" ] (prefix + key);
cheatRows =
map (b: padRight 22 (prettyKeys b) + b.desc) (keybinds.binds
++ lib.optionals (lib.hasInfix "," cfg.keyboard.layout)