aboutsummaryrefslogtreecommitdiff
path: root/modules/system/quickshell/ScreenRecordIndicator.qml
diff options
context:
space:
mode:
authorLeander Scherer <leander@schererleander.de>2026-05-30 15:35:27 +0200
committerLeander Scherer <leander@schererleander.de>2026-05-30 15:35:27 +0200
commitd2747e2ca1e211a32e91e44010f40a00e0ac97e4 (patch)
treefb229d6a18541c7a5f1944390b21edde028955f9 /modules/system/quickshell/ScreenRecordIndicator.qml
parent51b3cbd50b92d026549ce3ebff17ca9b3344f441 (diff)
feat(quickshell): add popup controls and privacy indicators
Diffstat (limited to 'modules/system/quickshell/ScreenRecordIndicator.qml')
-rw-r--r--modules/system/quickshell/ScreenRecordIndicator.qml38
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/system/quickshell/ScreenRecordIndicator.qml b/modules/system/quickshell/ScreenRecordIndicator.qml
new file mode 100644
index 0000000..6630b81
--- /dev/null
+++ b/modules/system/quickshell/ScreenRecordIndicator.qml
@@ -0,0 +1,38 @@
+import QtQuick
+import Quickshell
+import Quickshell.Services.Pipewire
+
+Item {
+ id: root
+ width: indicator.width
+ height: parent.height
+ visible: root.recording
+
+ readonly property bool recording: {
+ const nodes = Pipewire.nodes?.values || [];
+ for (const node of nodes) {
+ if (node && node.isStream && (node.type & PwNodeType.VideoSource))
+ return true;
+ }
+ return false;
+ }
+
+ Squircle {
+ id: indicator
+ anchors.verticalCenter: parent.verticalCenter
+ width: 28
+ height: 22
+ cornerRadius: 8
+ fillColor: Theme.destructive
+
+ Image {
+ anchors.centerIn: parent
+ width: 15
+ height: 15
+ source: Quickshell.iconPath("media-record-symbolic")
+ sourceSize: Qt.size(width, height)
+ smooth: true
+ mipmap: true
+ }
+ }
+}