feat(rofi): show the Print-key hints on the Capture menu rows
All checks were successful
Check / eval (push) Successful in 3m2s
All checks were successful
Check / eval (push) Successful in 3m2s
Iteration #66 (direct request: "make sure menu items that have a keybind display it"). Audit found every SUPER(+CTRL) module-opening row already hinted (item 28c); the one gap was Tools ▸ Capture — its Region/Full screen rows run the exact grim commands of the Print / SHIFT+Print / CTRL+Print binds but showed nothing. Adds `hintForBind mods key` (matches keybinds.nix by mods+key, so no drift and no brittle full-action compare) and `-markup-rows` on the Capture menu so the spans render. Verified: V0 green; V1 HM built — shipped nomarchy-menu shows `Region → clipboard {{Print}}`, `Region → file {{SHIFT + Print}}`, `Full screen → file {{CTRL + Print}}`. Substring case-matches precede the appended span, so dispatch is unchanged. V3 (pango dim render) queued. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -271,6 +271,10 @@ QA machine), the **T14s** (webcam case).
|
|||||||
saves a PNG under ~/Pictures/Screenshots (toast shows the path);
|
saves a PNG under ~/Pictures/Screenshots (toast shows the path);
|
||||||
CTRL+Print saves the whole screen the same way; bare Print still
|
CTRL+Print saves the whole screen the same way; bare Print still
|
||||||
copies a region to the clipboard. Both new rows appear in SUPER+?.
|
copies a region to the clipboard. Both new rows appear in SUPER+?.
|
||||||
|
Also (iteration #66): Tools ▸ Capture now shows the matching dim key
|
||||||
|
hint on the Region → clipboard / Region → file / Full screen → file
|
||||||
|
rows (Print / SHIFT + Print / CTRL + Print) — pango renders, no raw
|
||||||
|
`<span>` leaks.
|
||||||
- [ ] **rofi menu polish** (iteration #58, item 39 + #56/#57 34/40) —
|
- [ ] **rofi menu polish** (iteration #58, item 39 + #56/#57 34/40) —
|
||||||
after `home-update`: (a) menu › System › Power profile shows a
|
after `home-update`: (a) menu › System › Power profile shows a
|
||||||
colored icon per profile (performance/balanced/power-saver), not
|
colored icon per profile (performance/balanced/power-saver), not
|
||||||
|
|||||||
@@ -17,6 +17,31 @@ Template:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2026-07-08 — Capture rows show Print-key hints (iteration #66, direct requests)
|
||||||
|
- **Task:** Two live requests from Bernardo. (1) Fold his provided
|
||||||
|
power-menu mockup into item 36(b). (2) "make sure all menu items that
|
||||||
|
have a keybind display the keybind" (he dropped the flush-right ask —
|
||||||
|
inline is fine).
|
||||||
|
- **Did:** (1) BACKLOG item 36(b) un-gated — mockup + Nomarchy adaptation
|
||||||
|
(reuse batterylimit/power-profile writers, not raw TLP; wire the Waybar
|
||||||
|
battery `on-click`; one open call: replace-or-keep the System rows).
|
||||||
|
(2) Audited every menu/submenu: all SUPER(+CTRL) module-opening rows
|
||||||
|
already carry a hint (item 28c). The one real gap = the Tools ▸ Capture
|
||||||
|
rows, which run the exact `grim` commands of the Print / SHIFT+Print /
|
||||||
|
CTRL+Print binds but showed nothing. Added `hintForBind mods key` (reads
|
||||||
|
keybinds.nix by mods+key, drift-free) → hints on the three matching rows,
|
||||||
|
and `-markup-rows` on the Capture menu so the spans render.
|
||||||
|
- **Verified:** V0 `nix flake check --no-build` green; V1 HM built, shipped
|
||||||
|
nomarchy-menu shows `Region → clipboard {{Print}}`, `Region → file
|
||||||
|
{{SHIFT + Print}}`, `Full screen → file {{CTRL + Print}}` under
|
||||||
|
`-markup-rows`. Substring `case` matches sit before the appended span, so
|
||||||
|
dispatch is unaffected (same proven pattern as Tools/System).
|
||||||
|
- **Pending:** V3 — pango dim actually rendering in the Capture submenu
|
||||||
|
(queued on the existing Capture entry). Power-menu item 36(b) stays
|
||||||
|
`[human]` on the replace-or-keep call.
|
||||||
|
- **Next suggestion:** back to the queue head (item 36a done; 32 done) —
|
||||||
|
next actionable is likely item 33 (rofi scrollbar) or a QA sweep.
|
||||||
|
|
||||||
## 2026-07-08 — SUPER+? cheatsheet re-fixed: base keysym (iteration #65, item 32)
|
## 2026-07-08 — SUPER+? cheatsheet re-fixed: base keysym (iteration #65, item 32)
|
||||||
- **Task:** BACKLOG item 32 — SUPER+? still didn't open the cheatsheet
|
- **Task:** BACKLOG item 32 — SUPER+? still didn't open the cheatsheet
|
||||||
after item 26's fix. Re-diagnose.
|
after item 26's fix. Re-diagnose.
|
||||||
|
|||||||
@@ -158,6 +158,14 @@ let
|
|||||||
menuHint = module: hintForAction "exec, nomarchy-menu ${module}";
|
menuHint = module: hintForAction "exec, nomarchy-menu ${module}";
|
||||||
# Apps opens rofi drun directly, not a nomarchy-menu module.
|
# Apps opens rofi drun directly, not a nomarchy-menu module.
|
||||||
appsHint = " <span size='small' alpha='55%'>SUPER + D</span>";
|
appsHint = " <span size='small' alpha='55%'>SUPER + D</span>";
|
||||||
|
# A menu row that runs the same op as a global bind whose action isn't a
|
||||||
|
# `nomarchy-menu` module (the Capture rows ↔ the Print screenshot keys):
|
||||||
|
# match on mods+key so the hint still reads from keybinds.nix (single
|
||||||
|
# source, no drift), rather than a brittle full-action-string compare.
|
||||||
|
hintForBind = mods: key:
|
||||||
|
let m = lib.filter (b: b.mods == mods && b.key == key) keybinds.binds;
|
||||||
|
in lib.optionalString (m != [ ])
|
||||||
|
" <span size='small' alpha='55%'>${prettyKeys (lib.head m)}</span>";
|
||||||
|
|
||||||
nomarchy-menu = pkgs.writeShellScriptBin "nomarchy-menu" ''
|
nomarchy-menu = pkgs.writeShellScriptBin "nomarchy-menu" ''
|
||||||
# Nomarchy menu dispatcher — thin presentation layer over
|
# Nomarchy menu dispatcher — thin presentation layer over
|
||||||
@@ -400,10 +408,10 @@ ${themeRows}
|
|||||||
# Screenshots + screen recording. Recording rows self-swap: while
|
# Screenshots + screen recording. Recording rows self-swap: while
|
||||||
# one runs, the only offer is Stop (same surface as the bar's ⏺).
|
# one runs, the only offer is Stop (same surface as the bar's ⏺).
|
||||||
choice=$( {
|
choice=$( {
|
||||||
row "Region → clipboard" applets-screenshooter
|
row "Region → clipboard${hintForBind "" "Print"}" applets-screenshooter
|
||||||
row "Region → file" applets-screenshooter
|
row "Region → file${hintForBind "SHIFT" "Print"}" applets-screenshooter
|
||||||
row "Full screen → clipboard" camera-photo
|
row "Full screen → clipboard" camera-photo
|
||||||
row "Full screen → file" camera-photo
|
row "Full screen → file${hintForBind "CTRL" "Print"}" camera-photo
|
||||||
command -v tesseract >/dev/null 2>&1 && row "OCR region → clipboard" scanner
|
command -v tesseract >/dev/null 2>&1 && row "OCR region → clipboard" scanner
|
||||||
if command -v nomarchy-record >/dev/null 2>&1; then
|
if command -v nomarchy-record >/dev/null 2>&1; then
|
||||||
if nomarchy-record active; then
|
if nomarchy-record active; then
|
||||||
@@ -416,7 +424,7 @@ ${themeRows}
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
back
|
back
|
||||||
} | rofi -dmenu -show-icons -p Capture) || exit 0
|
} | rofi -dmenu -show-icons -markup-rows -p Capture) || exit 0
|
||||||
dir="$HOME/Pictures/Screenshots"
|
dir="$HOME/Pictures/Screenshots"
|
||||||
file="$dir/$(date +%Y%m%d-%H%M%S).png"
|
file="$dir/$(date +%Y%m%d-%H%M%S).png"
|
||||||
case "$choice" in
|
case "$choice" in
|
||||||
|
|||||||
Reference in New Issue
Block a user