diff --git a/modules/Network.qml b/modules/Network.qml index 3950a1d..60c1add 100644 --- a/modules/Network.qml +++ b/modules/Network.qml @@ -13,7 +13,7 @@ Row { Process { id: proc running: true - command: ["sh", "-c", "nmcli -t -f NAME,TYPE,DEVICE connection show --active | head -1"] + command: ["sh", "-c", "line=$(nmcli -t -f NAME,TYPE,DEVICE connection show --active 2>/dev/null | head -1); if [ -n \"$line\" ]; then echo \"$line\"; else dev=$(nmcli -t -f DEVICE,STATE device 2>/dev/null | grep ':connected' | grep -v ':unmanaged\\|:unavailable\\|:disconnected\\|:connecting' | head -1 | cut -d: -f1); if [ -n \"$dev\" ]; then echo \"linked:linked:$dev\"; fi; fi"] stdout: StdioCollector { onStreamFinished: { const line = text.trim(); @@ -26,7 +26,9 @@ Row { const parts = line.split(":"); root.essid = parts[0] || ""; root.ifname = parts[2] || ""; - root.state = (parts[1] || "").includes("wireless") ? "wifi" : "eth"; + if ((parts[1] || "").includes("wireless")) root.state = "wifi"; + else if (parts[0] === "linked") root.state = "linked"; + else root.state = "eth"; } } } @@ -41,6 +43,7 @@ Row { text: { if (root.state === "wifi") return " " + root.essid; if (root.state === "eth") return "󰈀"; + if (root.state === "linked") return "󱘖"; return "󰣽"; } color: M.Theme.base05 diff --git a/modules/Notifications.qml b/modules/Notifications.qml index 2342d1c..85b96f1 100644 --- a/modules/Notifications.qml +++ b/modules/Notifications.qml @@ -8,6 +8,7 @@ Row { property int count: 0 property bool dnd: false + property bool inhibited: false Process { id: sub @@ -18,8 +19,10 @@ Row { onRead: (line) => { try { const d = JSON.parse(line); + const cls = d.class ?? ""; root.count = d.count ?? 0; - root.dnd = (d.class ?? "").includes("dnd"); + root.dnd = cls.includes("dnd"); + root.inhibited = cls.includes("inhibited"); } catch (e) {} } } @@ -27,6 +30,7 @@ Row { Text { text: { + if (root.inhibited) return root.count > 0 ? "󰂛" : "󰪑"; if (root.dnd) return root.count > 0 ? "󰂠" : "󰪓"; return root.count > 0 ? "󱅫" : "󰂜"; }