diff --git a/shell/plugins/bar/indicators/dnd.qml b/shell/plugins/bar/indicators/dnd.qml index ca3903f4..97d93c3c 100644 --- a/shell/plugins/bar/indicators/dnd.qml +++ b/shell/plugins/bar/indicators/dnd.qml @@ -1,51 +1,22 @@ import QtQuick -import Quickshell.Io import qs.Commons import qs.Ui BarIndicator { id: root - property string statusText: "" - property string statusTooltip: "" + readonly property var notificationService: bar.shell.firstPartyServiceFor("omarchy.notifications") + readonly property bool dnd: notificationService ? notificationService.doNotDisturb : false - active: statusText !== "" - activeText: statusText + active: dnd + activeText: "󰂛" inactiveText: "󰂛" - activeTooltipText: statusTooltip + activeTooltipText: "Notifications silenced" inactiveTooltipText: "Do Not Disturb" - function refresh() { - if (!root.bar || statusProc.running) return - statusProc.command = ["bash", "-lc", Util.shellQuote(root.bar.omarchyPath + "/shell/scripts/indicators/notification-silencing.sh")] - statusProc.running = true - } - - function update(raw) { - var data = extractData(raw) - - statusText = data.text || "" - statusTooltip = data.tooltip || "" - } - - onBarChanged: refresh() - Component.onCompleted: refresh() - - Connections { - target: root.bar - ignoreUnknownSignals: true - function onIndicatorsRefreshRequested() { root.refresh() } - } - - Process { - id: statusProc - stdout: StdioCollector { - waitForEnd: true - onStreamFinished: root.update(text) + onPressed: function() { + if (root.notificationService) { + root.notificationService.setDoNotDisturb(!root.notificationService.doNotDisturb) } } - - onPressed: function() { - if (root.bar) root.bar.run("omarchy-toggle-notification-silencing") - } } diff --git a/shell/scripts/indicators/notification-silencing.sh b/shell/scripts/indicators/notification-silencing.sh deleted file mode 100755 index 7f8c5e8b..00000000 --- a/shell/scripts/indicators/notification-silencing.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -state=$(omarchy-shell notifications isDnd 2>/dev/null || echo off) -if [[ $state == "on" ]]; then - echo '{"text": "󰂛", "tooltip": "Notifications silenced", "class": "active"}' -else - echo '{"text": ""}' -fi