fix(keybinds): SUPER+? never fired — shifted keysym needs SHIFT in the modmask
All checks were successful
Check / eval (push) Successful in 2m53s
All checks were successful
Check / eval (push) Successful in 2m53s
? is typed as Shift+/, so Hyprland saw mods SUPER+SHIFT with keysym `question` and the exact-modmask match skipped the `$mod, question` bind — the keypress fell through to the focused window (caught on the Latitude, BACKLOG item 26; the menu itself was fine from a terminal). - keybinds.nix: bind is now `$mod SHIFT, question`. - rofi.nix prettyKeys collapses "SHIFT + ?" back to "?" so the cheatsheet row keeps the documented SUPER + ? label. - MEMORY.md gotcha: shifted keysyms need SHIFT in mods — invisible to eval-tier tests. Verified: V0 (flake check --no-build); V1 both surfaces (eval'd settings.bind renders `$mod SHIFT, question, exec, nomarchy-menu keybinds`; built nomarchy-menu's cheatsheet renders `SUPER + ?`). V3 queued: SUPER+? on the Latitude after home-update + relogin. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -33,8 +33,11 @@
|
||||
{ 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+? (the "question" keysym already implies Shift on most layouts).
|
||||
{ mods = "$mod"; key = "question"; action = "exec, nomarchy-menu keybinds"; desc = "Keybindings cheatsheet"; }
|
||||
# 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).
|
||||
# The cheatsheet still renders this row as SUPER + ? (rofi.nix).
|
||||
{ mods = "$mod SHIFT"; key = "question"; 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).
|
||||
|
||||
@@ -117,7 +117,10 @@ let
|
||||
let m = lib.replaceStrings [ "$mod" ] [ "SUPER" ] b.mods;
|
||||
prefix = if m == "" then "" else lib.concatStringsSep " + " (lib.splitString " " m) + " + ";
|
||||
key = lib.replaceStrings [ "question" "slash" ] [ "?" "/" ] b.key;
|
||||
in prefix + 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);
|
||||
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