feat(waybar): combined power menu on the battery + profile icons
All checks were successful
Check / eval (push) Successful in 3m5s

Item 36(b). Adds `nomarchy-menu powermgmt` — one flat rofi menu of power
Profile rows (→ powerprofilesctl set) + Charge limit rows (→ the same
theme-sync writer batterylimit uses), each half self-gating on its
hardware. No backend duplication; Custom charge stays in the dedicated
batterylimit picker.

Opened two ways (Bernardo's call): the Waybar battery icon AND the
power-profile icon — the profile icon's click flips from cycle → menu.
Wired in waybar.nix and all four whole-swaps (parity). Named `powermgmt`
to avoid the whole-swaps' existing `custom/powermenu` shutdown button
(→ nomarchy-menu power), which is left untouched. The granular System ▸
Power profile / Battery limit rows stay ("keep both").
nomarchy-powerprofile-cycle kept as a standalone bin, now unbound by
default.

Verified: V0 green; V1 HM built (bash -n) — powermgmt case ships, the
generated waybar-config.json wires both icons (2 hits), all four jsoncs
re-wired and still parse, shutdown buttons intact. Click→menu→apply is
V3 (queued).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-08 14:40:40 +01:00
parent 714fbd1daf
commit 1143e67f95
9 changed files with 101 additions and 33 deletions

View File

@@ -17,6 +17,31 @@ Template:
---
## 2026-07-08 — Combined power menu on the bar icons (iteration #67, item 36b)
- **Task:** BACKLOG item 36(b), now unblocked. Bernardo's calls: keep the
granular System ▸ Battery limit / Power profile rows; build ONE combined
menu; open it two ways — the Waybar **battery** icon AND the
**power-profile** icon (the profile icon's click flips from cycle → menu).
- **Did:** New `nomarchy-menu powermgmt` (rofi.nix): a flat list of Profile
rows (→ `powerprofilesctl set`, like the power-profile picker) + Charge
limit rows (→ the same theme-sync writer as batterylimit), each half
self-gating on its hardware; no backend duplication, no Custom flow (that
stays in the dedicated batterylimit picker). Wired `battery.on-click` +
`custom/powerprofile.on-click``powermgmt` in waybar.nix AND all four
whole-swaps (parity). Named `powermgmt` to avoid the whole-swaps' existing
`custom/powermenu` (that's the shutdown button → `nomarchy-menu power`,
left untouched). `nomarchy-powerprofile-cycle` kept as a standalone bin
(now just unbound by default).
- **Verified:** V0 green; V1 HM built (bash -n passed) — shipped
nomarchy-menu has the `powermgmt` case; generated waybar-config.json wires
both icons to it (2 hits); all four whole-swap jsoncs re-wired and still
parse as JSON, shutdown buttons intact.
- **Pending:** V3 — click either icon → menu opens, picking a profile /
charge preset actually applies (queued in HARDWARE-QUEUE). The
instant-charge-write follow-up stays PROPOSED/`[blocked:hw]`.
- **Next suggestion:** back to the queue — item 33 (rofi scrollbar) or a
QA sweep; both remaining NEXT items lean human/hardware.
## 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