aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/Status.qml
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-15 11:08:05 +0200
committerDanilo M. <danix@danix.xyz>2026-09-15 11:13:07 +0200
commit5e42fd4e4bf32c5214183f54c3e6bcec847c94b8 (patch)
tree51b500d07a41eceaea205ffc6a4388ee1d5d403b /desktop/Status.qml
parent6d17f34c8f245f8a317e83b5b02ef0f06c95a247 (diff)
downloadquickshell-5e42fd4e4bf32c5214183f54c3e6bcec847c94b8.tar.gz
quickshell-5e42fd4e4bf32c5214183f54c3e6bcec847c94b8.zip
feat(desktop): add the status singleton with the dnd mode
Modes live as files under XDG_RUNTIME_DIR, one per mode, holding 0 or 1, with a missing file meaning off. That directory is tmpfs, so a reboot resets every mode and no cleanup code is needed. FileView covers both directions: atomicWrites for the write, watchChanges for the watch, so an external writer repaints the drawer with no polling. Both are already the documented defaults in 0.3.1 and are set explicitly anyway, because statusctl watches close_write,moved_to precisely because an atomic write lands as a rename. A future release flipping either default would break the watcher with no error, and a declaration is a stronger guarantee than a default. The documented behaviour is that a FileView fires its own fileChanged on setText, so the reparse compares before assigning and a self-write is a no-op rather than a loop. That has not been observed running yet: nothing consumes the singleton until the status module exists, so the guard stays unproven until then. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A7ThHHh5iTYbVfp3rNAkw2
Diffstat (limited to 'desktop/Status.qml')
l---------desktop/Status.qml1
1 files changed, 1 insertions, 0 deletions
diff --git a/desktop/Status.qml b/desktop/Status.qml
new file mode 120000
index 0000000..e7188a3
--- /dev/null
+++ b/desktop/Status.qml
@@ -0,0 +1 @@
+../shared/Status.qml \ No newline at end of file