diff options
Diffstat (limited to 'notifications/Balloons.qml')
| -rw-r--r-- | notifications/Balloons.qml | 15 |
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]; |
