From 661d477e7806d322d3499c19537541c5dd4e7d82 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 15 Sep 2026 12:29:42 +0200 Subject: fix(status): address final review findings F1: after a click the shared Switch writes checked directly, dropping StatusRow's declarative binding, so an external mode change from waybar or statusctl no longer moved the switch. Resync via onValueChanged. F2: the spec claimed hyprctl clients counts idle inhibitors, which is false for a layer-surface inhibitor; replace with the behavioral hypridle marker check. F3: README said the check covers both watch states; it exercises the activated report and the absent-file down report. F4: give breakProc an onExited check so a failed breaktimer.sh verb is visible instead of silent. F5: drop StatusTile's unused required st property and its injection. F6: comment the startup-order limit on dndBeforePresentation. --- shared/Status.qml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'shared') diff --git a/shared/Status.qml b/shared/Status.qml index 5df1847..8f80b9a 100644 --- a/shared/Status.qml +++ b/shared/Status.qml @@ -43,6 +43,10 @@ Singleton { // presentation mode off restores it rather than clearing it. Held here // rather than in a file: it is meaningful only while presentation mode is // on, and presentation mode does not survive a reboot. + // + // Known limit: on a shell restart while presentation is already on, + // onPresentationChanged can run before the dnd FileView has loaded, so the + // recorded prior value depends on which file loads first. property bool dndBeforePresentation: false function setMode(name, on) { @@ -80,7 +84,13 @@ Singleton { // breaktimer owns its own state file; this only calls its verbs. Two // writers on that file would race with its daemon loop, which rewrites it // on every phase change. - Process { id: breakProc } + Process { + id: breakProc + onExited: code => { + if (code !== 0) + console.warn("status: breaktimer.sh " + breakProc.command[1] + " exited " + code); + } + } // Wayland idle inhibit. The compositor advertises // zwp_idle_inhibit_manager_v1 and hypridle honours it, so no D-Bus path -- cgit v1.2.3