From 52a2a2dad4b8e35a187b3b287ba32ffafd90b6a4 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 17 Oct 2026 15:56:45 +0200 Subject: 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. --- desktop/island/ObsPill.qml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'desktop/island/ObsPill.qml') 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. -- cgit v1.2.3