diff --git a/modules/Privacy.qml b/modules/Privacy.qml index 01e6652..549743b 100644 --- a/modules/Privacy.qml +++ b/modules/Privacy.qml @@ -7,13 +7,12 @@ Row { id: root spacing: M.Theme.moduleSpacing - // Only detect active client streams, not hardware sources/devices - readonly property bool _videoCapture: { + readonly property bool _screenShare: { if (!Pipewire.nodes) return false; for (const node of Pipewire.nodes.values) { if (!node.isStream) continue; const mc = node.properties?.["media.class"] ?? ""; - if (mc === "Stream/Input/Video" || mc === "Stream/Output/Video") return true; + if (mc.includes("Video")) return true; } return false; } @@ -28,11 +27,11 @@ Row { return false; } - visible: root._videoCapture || root._audioIn + visible: root._screenShare || root._audioIn // Screenshare indicator Text { - visible: root._videoCapture + visible: root._screenShare text: "\uF03D" color: M.Theme.base08 font.pixelSize: M.Theme.fontSize + 2 @@ -49,7 +48,7 @@ Row { } SequentialAnimation on opacity { - running: root._videoCapture + running: root._screenShare loops: Animation.Infinite NumberAnimation { to: 0.4; duration: 600; easing.type: Easing.InOutQuad } NumberAnimation { to: 1; duration: 600; easing.type: Easing.InOutQuad } diff --git a/modules/Theme.qml b/modules/Theme.qml index e89dbfa..6c9e834 100644 --- a/modules/Theme.qml +++ b/modules/Theme.qml @@ -34,7 +34,7 @@ QtObject { property int barSpacing: 12 property int moduleSpacing: 4 property int radius: 4 - property int screenRadius: 20 + property int screenRadius: 15 property FileView _themeFile: FileView { path: (Quickshell.env("XDG_CONFIG_HOME") || (Quickshell.env("HOME") + "/.config")) + "/nova-shell/theme.json"