From f6c6a6d32359ed819aadf7938c12ec52a8de341a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 20 May 2026 14:34:15 +0200 Subject: [PATCH] Simplify --- shell/plugins/bar/indicators/dnd.qml | 45 ++++--------------- .../indicators/notification-silencing.sh | 8 ---- 2 files changed, 8 insertions(+), 45 deletions(-) delete mode 100755 shell/scripts/indicators/notification-silencing.sh 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