aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers
diff options
context:
space:
mode:
Diffstat (limited to 'docs/superpowers')
-rw-r--r--docs/superpowers/plans/2026-09-15-status-registry.md12
1 files changed, 11 insertions, 1 deletions
diff --git a/docs/superpowers/plans/2026-09-15-status-registry.md b/docs/superpowers/plans/2026-09-15-status-registry.md
index b598129..3b95743 100644
--- a/docs/superpowers/plans/2026-09-15-status-registry.md
+++ b/docs/superpowers/plans/2026-09-15-status-registry.md
@@ -4,7 +4,7 @@
**Goal:** A `status` singleton and drawer module owning desktop modes (`dnd`, `presentation`) as files in `$XDG_RUNTIME_DIR`, with a `statusctl` CLI so anything on the system can read, set and watch them.
-**Architecture:** One `pragma Singleton` in `shared/Status.qml`, symlinked into `desktop/`, holding a `FileView` per mode with `atomicWrites` and `watchChanges`. Modes are booleans; `presentation` additionally asserts an `IdleInhibitor`, pauses breaktimer through a `Process`, and drives `dnd` while recording the prior value. A thin drawer module renders a tile and a page over the singleton. `~/bin/statusctl` reads and writes the same files directly, so it works when the shell is down.
+**Architecture:** One `pragma Singleton` in `shared/Status.qml`, symlinked into `desktop/`, holding a `FileView` per mode with `atomicWrites` and `watchChanges` set explicitly. Modes are booleans; `presentation` additionally asserts an `IdleInhibitor`, pauses breaktimer through a `Process`, and drives `dnd` while recording the prior value. A thin drawer module renders a tile and a page over the singleton. `~/bin/statusctl` reads and writes the same files directly, so it works when the shell is down.
**Tech Stack:** Quickshell 0.3.1, Qt6 QML, `Quickshell.Io.FileView`, `Quickshell.Wayland.IdleInhibitor`, bash, `inotifywait` (inotify-tools 4.23.9.0).
@@ -169,6 +169,11 @@ Singleton {
mf.setText(s);
}
+ // Both are the documented defaults in 0.3.1, set explicitly because
+ // the CLI depends on them: statusctl watches close_write,moved_to
+ // precisely because an atomic write lands as a rename, so a future
+ // release flipping this default would break the watcher silently.
+ atomicWrites: true
watchChanges: true
printErrors: false
onFileChanged: mf.reload()
@@ -651,6 +656,11 @@ Singleton {
mf.setText(s);
}
+ // Both are the documented defaults in 0.3.1, set explicitly because
+ // the CLI depends on them: statusctl watches close_write,moved_to
+ // precisely because an atomic write lands as a rename, so a future
+ // release flipping this default would break the watcher silently.
+ atomicWrites: true
watchChanges: true
printErrors: false
onFileChanged: mf.reload()