fix(keybinds): SUPER+? bind uses base keysym slash, not question
All checks were successful
Check / eval (push) Successful in 3m10s
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:
@@ -33,11 +33,13 @@
|
||||
{ mods = "$mod"; key = "X"; action = "exec, nomarchy-menu power"; desc = "Power menu"; }
|
||||
|
||||
{ mods = "$mod"; key = "N"; action = "exec, swaync-client -t"; desc = "Notification centre"; }
|
||||
# SUPER+? — ? is typed as Shift+/, so SHIFT must be in the bind's
|
||||
# modmask or Hyprland's exact-modifier match never fires (the key then
|
||||
# falls through to the focused window; caught on hardware, item 26).
|
||||
# SUPER+? — ? is Shift+/. SHIFT stays in the modmask (you hold it), but
|
||||
# the keysym must be the BASE key `slash`, not `question`: Hyprland
|
||||
# resolves the sym with Shift consumed, so `question` never matches while
|
||||
# Shift is down — same as the `$mod SHIFT, 1` workspace binds. (item 26
|
||||
# fixed the modmask but kept the shifted keysym → still dead; item 32.)
|
||||
# The cheatsheet still renders this row as SUPER + ? (rofi.nix).
|
||||
{ mods = "$mod SHIFT"; key = "question"; action = "exec, nomarchy-menu keybinds"; desc = "Keybindings cheatsheet"; }
|
||||
{ mods = "$mod SHIFT"; key = "slash"; action = "exec, nomarchy-menu keybinds"; desc = "Keybindings cheatsheet"; }
|
||||
|
||||
# Menu functions — SUPER+CTRL+<mnemonic> jumps straight to a
|
||||
# nomarchy-menu module (all also reachable from the SUPER+M picker).
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user