fix(menu): explain unsupported battery-limit and BlueZ-down states
Some checks failed
Check / eval (push) Has been cancelled

BACKLOG #96 + #97 (Acer live pass). Battery limit: the System row now
gates on battery presence (same rule as Power profile) instead of the
charge-threshold sysfs node, so firmware without the control gets the
leaf's explanation ("no charge_control_end_threshold — hardware
capability") rather than a silently missing row that reads as a broken
feature. Bluetooth: the leaf checks bluetooth.service before launching
blueman-manager and replaces the raw "Connection to BlueZ failed" with
a state-aware message (service stopped vs no adapter in
/sys/class/bluetooth, with rfkill/firmware hints).

Verified: V1 — nomarchy-menu builds, bash -n green, both paths in the
generated script; V0 flake check green. QEMU can fake neither a
threshold-less battery nor a BT adapter: #96 behavioral check queued in
HARDWARE-QUEUE (Acer + T14s); #97's no-adapter message will be
click-checked in the next VM run (V2 pending).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 18:36:19 +01:00
parent 10853f662c
commit 79528ff392
4 changed files with 45 additions and 20 deletions

View File

@@ -19,6 +19,24 @@ Template:
---
## 2026-07-13 — #96+#97 menu gates explain instead of vanish/raw-fail (this commit)
- **Task:** BACKLOG #96 (battery-limit row silently absent on threshold-less
firmware) and #97 (raw "Connection to BlueZ failed").
- **Did:** rofi.nix — Battery limit row now gates on `has_system_battery`
(like Power profile); the leaf explains a missing
`charge_control_end_threshold` as a firmware capability. Bluetooth leaf
checks `bluetooth.service` before exec'ing blueman and explains the
service-down vs no-adapter (`/sys/class/bluetooth` empty) cases with
rfkill/firmware hints.
- **Verified:** V1 — built nomarchy-menu, bash -n green, both new paths
present in the generated script; V0 flake check green. VM can't fake a
threshold-less battery or a BT adapter, so the behavioral checks are
queued: #96 → HARDWARE-QUEUE (Acer + T14s row check); #97 → the no-adapter
message is exercisable in the next QEMU run (planned with #94's
test-install pass; VMs have no BT adapter).
- **Pending:** #97 V2 click-check in the next VM run; #96 V3 on the Acer.
- **Next suggestion:** #94 test-install run (chromium launch + BT click).
## 2026-07-13 — #107 direct System/Tools menu keybinds (this commit)
- **Task:** BACKLOG #107 — conflict-free direct bindings via keybinds.nix.
- **Did:** `SUPER+CTRL+I``nomarchy-menu system` (Super+I settings muscle