From 7e5afebada5e1e70dbbc942fa013ab6a79ed64e6 Mon Sep 17 00:00:00 2001 From: Damocles Date: Sun, 12 Apr 2026 18:58:16 +0200 Subject: [PATCH] privacy: detect active video streams only, not hardware sources --- modules/Privacy.qml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/Privacy.qml b/modules/Privacy.qml index 549743b..01e6652 100644 --- a/modules/Privacy.qml +++ b/modules/Privacy.qml @@ -7,12 +7,13 @@ Row { id: root spacing: M.Theme.moduleSpacing - readonly property bool _screenShare: { + // Only detect active client streams, not hardware sources/devices + readonly property bool _videoCapture: { if (!Pipewire.nodes) return false; for (const node of Pipewire.nodes.values) { if (!node.isStream) continue; const mc = node.properties?.["media.class"] ?? ""; - if (mc.includes("Video")) return true; + if (mc === "Stream/Input/Video" || mc === "Stream/Output/Video") return true; } return false; } @@ -27,11 +28,11 @@ Row { return false; } - visible: root._screenShare || root._audioIn + visible: root._videoCapture || root._audioIn // Screenshare indicator Text { - visible: root._screenShare + visible: root._videoCapture text: "\uF03D" color: M.Theme.base08 font.pixelSize: M.Theme.fontSize + 2 @@ -48,7 +49,7 @@ Row { } SequentialAnimation on opacity { - running: root._screenShare + running: root._videoCapture loops: Animation.Infinite NumberAnimation { to: 0.4; duration: 600; easing.type: Easing.InOutQuad } NumberAnimation { to: 1; duration: 600; easing.type: Easing.InOutQuad }