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:
@@ -26,14 +26,6 @@ next, in what order*.
|
|||||||
|
|
||||||
## NEXT
|
## NEXT
|
||||||
|
|
||||||
### 32. SUPER+? cheatsheet bind still not opening `[bug]`
|
|
||||||
(Raised by Bernardo, 2026-07-07 — item 2.) Item 26's fix (SHIFT in the
|
|
||||||
bind modmask so the shifted `question` keysym fires) shipped, but SUPER+?
|
|
||||||
still doesn't open the keybindings cheatsheet. Re-diagnose: confirm the
|
|
||||||
Hyprland bind's modmask/keysym against the *actual* layout, whether rofi
|
|
||||||
2.0.0 changed anything, and that the cheatsheet path still resolves.
|
|
||||||
|
|
||||||
|
|
||||||
### 36. Battery / power quick menu `[human]`
|
### 36. Battery / power quick menu `[human]`
|
||||||
(Raised by Bernardo, 2026-07-07 — item 6.) Slice (a) — the charge-threshold
|
(Raised by Bernardo, 2026-07-07 — item 6.) Slice (a) — the charge-threshold
|
||||||
toggle in the rofi System submenu — shipped 2026-07-07 (iteration #64;
|
toggle in the rofi System submenu — shipped 2026-07-07 (iteration #64;
|
||||||
|
|||||||
@@ -35,10 +35,14 @@ QA machine), the **T14s** (webcam case).
|
|||||||
comma layout + rebuild + relogin. The SUPER+? no-op found en
|
comma layout + rebuild + relogin. The SUPER+? no-op found en
|
||||||
route IS a real bug → BACKLOG item 26 (fix shipped — see the
|
route IS a real bug → BACKLOG item 26 (fix shipped — see the
|
||||||
dedicated SUPER+? entry below).
|
dedicated SUPER+? entry below).
|
||||||
- [ ] **SUPER+? opens the cheatsheet** (item 26 fix) — after
|
- [ ] **SUPER+? opens the cheatsheet** (item 32 re-fix — supersedes the
|
||||||
`home-update` + relogin (or `hyprctl reload`), SUPER+? must open
|
item 26 attempt) — the bind is now `$mod SHIFT, slash` (the BASE
|
||||||
the keybindings cheatsheet, whose row still reads `SUPER + ?`
|
keysym: Hyprland 0.55 resolves the sym with Shift consumed, so the
|
||||||
(not `SUPER + SHIFT + ?`).
|
old `question` keysym never matched while Shift was down — same
|
||||||
|
pattern as the working `$mod SHIFT, 1` workspace binds). After
|
||||||
|
`home-update` + relogin (or `hyprctl reload`), SUPER+? must open the
|
||||||
|
keybindings cheatsheet, whose row still reads `SUPER + ?` (not
|
||||||
|
`SUPER + SHIFT + ?`).
|
||||||
- [ ] **swaync readable on summer-day** (item 25 fix) — on summer-day
|
- [ ] **swaync readable on summer-day** (item 25 fix) — on summer-day
|
||||||
after `home-update`: `notify-send "title" "body text"` shows
|
after `home-update`: `notify-send "title" "body text"` shows
|
||||||
readable body text; open the control centre (SUPER+N), hover a
|
readable body text; open the control centre (SUPER+N), hover a
|
||||||
|
|||||||
@@ -17,6 +17,28 @@ Template:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2026-07-08 — SUPER+? cheatsheet re-fixed: base keysym (iteration #65, item 32)
|
||||||
|
- **Task:** BACKLOG item 32 — SUPER+? still didn't open the cheatsheet
|
||||||
|
after item 26's fix. Re-diagnose.
|
||||||
|
- **Did:** Root cause = wrong keysym, not path/rofi. Hyprland 0.55 resolves
|
||||||
|
a bind's keysym with SHIFT *consumed* (issue #7750, since 0.43), so
|
||||||
|
`$mod SHIFT, question` looks for `slash` and never matches. Item 26 fixed
|
||||||
|
the modmask but kept the shifted keysym → still dead. Changed keybinds.nix
|
||||||
|
`question` → `slash` (the BASE keysym, exactly like the working
|
||||||
|
`$mod SHIFT, 1` workspace binds in this same file); updated rofi.nix
|
||||||
|
prettyKeys collapse `SHIFT + /` → `?` so the cheatsheet still reads
|
||||||
|
"SUPER + ?". Dispatch (`nomarchy-menu keybinds`) confirmed already fine.
|
||||||
|
- **Verified:** V0 `nix flake check --no-build` green. V1: HM activation
|
||||||
|
built; grepped the built hyprland.conf → `bind=$mod SHIFT, slash, exec,
|
||||||
|
nomarchy-menu keybinds` (beside the proven `$mod SHIFT, 1`), `kb_layout=us`
|
||||||
|
confirms slash→? ; `nix eval` of prettyKeys → "SUPER + ?".
|
||||||
|
- **Pending:** V3 — the keypress actually opening the menu is invisible
|
||||||
|
below hardware (that's how item 26 slipped); the existing HARDWARE-QUEUE
|
||||||
|
"SUPER+? opens the cheatsheet" entry updated to the slash fix.
|
||||||
|
- **Next suggestion:** Bernardo's two live requests — (1) fold the provided
|
||||||
|
power-menu mockup into item 36(b) [design now in hand]; (2) right-align a
|
||||||
|
keybind hint on every menu/submenu row that has one.
|
||||||
|
|
||||||
## 2026-07-07 — Battery-limit toggle in rofi System (iteration #64, item 36a)
|
## 2026-07-07 — Battery-limit toggle in rofi System (iteration #64, item 36a)
|
||||||
- **Task:** BACKLOG item 36(a) — Bernardo wanted the charge-threshold
|
- **Task:** BACKLOG item 36(a) — Bernardo wanted the charge-threshold
|
||||||
toggle as a first-class row in `nomarchy-menu › System`, not buried in
|
toggle as a first-class row in `nomarchy-menu › System`, not buried in
|
||||||
|
|||||||
@@ -33,11 +33,13 @@
|
|||||||
{ mods = "$mod"; key = "X"; action = "exec, nomarchy-menu power"; desc = "Power menu"; }
|
{ mods = "$mod"; key = "X"; action = "exec, nomarchy-menu power"; desc = "Power menu"; }
|
||||||
|
|
||||||
{ mods = "$mod"; key = "N"; action = "exec, swaync-client -t"; desc = "Notification centre"; }
|
{ 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
|
# SUPER+? — ? is Shift+/. SHIFT stays in the modmask (you hold it), but
|
||||||
# modmask or Hyprland's exact-modifier match never fires (the key then
|
# the keysym must be the BASE key `slash`, not `question`: Hyprland
|
||||||
# falls through to the focused window; caught on hardware, item 26).
|
# 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).
|
# 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
|
# Menu functions — SUPER+CTRL+<mnemonic> jumps straight to a
|
||||||
# nomarchy-menu module (all also reachable from the SUPER+M picker).
|
# nomarchy-menu module (all also reachable from the SUPER+M picker).
|
||||||
|
|||||||
@@ -129,10 +129,10 @@ let
|
|||||||
key = lib.replaceStrings
|
key = lib.replaceStrings
|
||||||
[ "question" "slash" "left" "right" "up" "down" ]
|
[ "question" "slash" "left" "right" "up" "down" ]
|
||||||
[ "?" "/" "←" "→" "↑" "↓" ] b.key;
|
[ "?" "/" "←" "→" "↑" "↓" ] b.key;
|
||||||
# ? already implies Shift — the bind needs SHIFT in its modmask
|
# The bind is `SHIFT + slash` (base keysym; keybinds.nix), which
|
||||||
# (keybinds.nix), but showing it would read double, so collapse
|
# renders "SHIFT + /". `?` IS Shift+/, so collapse that back to the
|
||||||
# "SHIFT + ?" back to the documented "?".
|
# single documented glyph — the cheatsheet reads "SUPER + ?".
|
||||||
in lib.replaceStrings [ "SHIFT + ?" ] [ "?" ] (prefix + key);
|
in lib.replaceStrings [ "SHIFT + /" ] [ "?" ] (prefix + key);
|
||||||
cheatRows =
|
cheatRows =
|
||||||
map (b: padRight 22 (prettyKeys b) + b.desc) (keybinds.binds
|
map (b: padRight 22 (prettyKeys b) + b.desc) (keybinds.binds
|
||||||
++ lib.optionals (lib.hasInfix "," cfg.keyboard.layout)
|
++ lib.optionals (lib.hasInfix "," cfg.keyboard.layout)
|
||||||
|
|||||||
Reference in New Issue
Block a user