aboutsummaryrefslogtreecommitdiffstats
path: root/notifications/Balloons.qml
diff options
context:
space:
mode:
Diffstat (limited to 'notifications/Balloons.qml')
-rw-r--r--notifications/Balloons.qml15
1 files changed, 14 insertions, 1 deletions
diff --git a/notifications/Balloons.qml b/notifications/Balloons.qml
index abeb13a..8574f9d 100644
--- a/notifications/Balloons.qml
+++ b/notifications/Balloons.qml
@@ -46,6 +46,19 @@ Scope {
// silent. seen is rebuilt from the queue each time, so it never grows.
property var seen: ({})
property bool primed: false
+ // Quiet mutes every sound and leaves the balloons, as it does for the
+ // Claude and opencode hooks. Read from the status registry's file, like
+ // Notify's dnd, so this shell never instantiates Status and its writes.
+ property bool quiet: false
+ FileView {
+ id: quietFile
+ path: (Quickshell.env("XDG_RUNTIME_DIR") || "/tmp") + "/status.quiet"
+ watchChanges: true
+ printErrors: false
+ onFileChanged: reload()
+ onLoaded: root.quiet = quietFile.text().trim() === "1"
+ onLoadFailed: root.quiet = false
+ }
Connections {
target: Notify
function onQueueChanged() {
@@ -61,7 +74,7 @@ Scope {
}
root.seen = next;
root.primed = true;
- if (file !== "") {
+ if (file !== "" && !root.quiet) {
// ponytail: one player, a new sound cuts the last; a queue of
// sounds if bursts ever need every one heard.
player.command = ["pw-play", file];