diff options
| author | Leander Scherer <leander@schererleander.de> | 2026-05-30 15:35:27 +0200 |
|---|---|---|
| committer | Leander Scherer <leander@schererleander.de> | 2026-05-30 15:35:27 +0200 |
| commit | d2747e2ca1e211a32e91e44010f40a00e0ac97e4 (patch) | |
| tree | fb229d6a18541c7a5f1944390b21edde028955f9 /modules/system/quickshell/ScreenRecordIndicator.qml | |
| parent | 51b3cbd50b92d026549ce3ebff17ca9b3344f441 (diff) | |
feat(quickshell): add popup controls and privacy indicators
Diffstat (limited to 'modules/system/quickshell/ScreenRecordIndicator.qml')
| -rw-r--r-- | modules/system/quickshell/ScreenRecordIndicator.qml | 38 |
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 + } + } +} |
