diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-17 15:56:45 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-17 15:56:45 +0200 |
| commit | 52a2a2dad4b8e35a187b3b287ba32ffafd90b6a4 (patch) | |
| tree | d2e9afcabce2a4eacaec46669ecd849ce5a68e52 /desktop/island/ObsPill.qml | |
| parent | 9989c734c2a0dc8ee3d8074eee961fd01c71a801 (diff) | |
| download | quickshell-52a2a2dad4b8e35a187b3b287ba32ffafd90b6a4.tar.gz quickshell-52a2a2dad4b8e35a187b3b287ba32ffafd90b6a4.zip | |
island: open the window source's properties from the pill
A Wayland window capture is chosen in the portal picker, which only OBS's
source dialog can open. In a scene whose only source is a PipeWire capture,
the panel gets a Window button that opens that dialog. A window scene with
more than one source needs a per-scene designation the pill does not have yet.
Diffstat (limited to 'desktop/island/ObsPill.qml')
| -rw-r--r-- | desktop/island/ObsPill.qml | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/desktop/island/ObsPill.qml b/desktop/island/ObsPill.qml index 6ae9b4e..3fdb4a3 100644 --- a/desktop/island/ObsPill.qml +++ b/desktop/island/ObsPill.qml @@ -27,6 +27,12 @@ Capsule { panelWidth: 260 panelHeight: controls.implicitHeight + 28 + // A scene whose only source is a PipeWire capture is the window scene. + // ponytail: a window scene with more than one source needs a per-scene + // designation instead of this count. + readonly property bool windowOnly: Obs.sources.length === 1 + && Obs.sources[0].kind === "pipewire-screen-capture-source" + Row { id: rest anchors.centerIn: parent @@ -93,7 +99,7 @@ Capsule { Row { spacing: 8 - visible: Obs.camId >= 0 || Obs.desktopAudio !== "" + visible: Obs.camId >= 0 || Obs.desktopAudio !== "" || pill.windowOnly Button { visible: Obs.camId >= 0 icon: Obs.camOn ? "\udb81\udd67" : "\udb81\udd68" @@ -106,6 +112,13 @@ Capsule { text: "Audio" onClicked: Obs.toggleAudio() } + // OBS's source dialog, where the Wayland portal window picker runs. + Button { + visible: pill.windowOnly + icon: "\uf2d0" + text: "Window" + onClicked: Obs.openSource(Obs.sources[0].name) + } } // The webcam's four corners on the recorded canvas. |
