𝘋𝘪𝘳𝘬<p>After lots and lots of waiting and trying out multiple different things regarding single window recording in <a href="https://gts.0x7be.net/tags/obs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OBS</span></a> :obs: on <a href="https://gts.0x7be.net/tags/wayland" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Wayland</span></a> :wayland: running <a href="https://gts.0x7be.net/tags/labwc" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>labwc</span></a> :labwc: there is now a solution in place I can work with.</p><p>I wrote a wrapper script (<a href="https://0x7be.de/projects/virtual-output-casting-wrapper-script/" rel="nofollow noopener" target="_blank">see here</a>) that does the following things when added as <a href="https://gts.0x7be.net/tags/pipemenu" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>pipemenu</span></a> in labwc and I click the menu entry to create the output.</p><ol><li>Add a virtual output</li><li>Use <code>wlr-randr</code> to set the geometry</li><li>Use <code>swaybg</code> to set the wallpaper</li><li>Send an update signal to a custom <a href="https://gts.0x7be.net/tags/waybar" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Waybar</span></a> module</li></ol><p>I can now start <a href="https://gts.0x7be.net/tags/obs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OBS</span></a> and can add a <a href="https://gts.0x7be.net/tags/pipewire" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PipeWire</span></a> screen recording and select the output (I have to do it blindly by just moving the cursor outside my actual display, because there is no menu, but that’s fine).</p><p>For what I’m doing the performance of the OBS preview is fast enough so I simply move the cursor over to the virtual output and use it “inside OBS”.</p><p>When I’m done, I invoke the script again, by clicking the remove entry which is dynamically shown if the output is active.</p><ol><li>Remove the output</li><li>Remove “the output’s <code>swaybg</code> instance”</li><li>Send an update signal to a custom Waybar instance</li></ol><p>Until individual-window recording will be possible this is a good workaround.</p><p><a href="https://gts.0x7be.net/tags/justlinuxthings" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JustLinuxThings</span></a> <a href="https://gts.0x7be.net/tags/modernlinuxproblems" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ModernLinuxProblems</span></a> <a href="https://gts.0x7be.net/tags/sharingiscaring" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SharingIsCaring</span></a> <a href="https://gts.0x7be.net/tags/scripting" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>scripting</span></a> <a href="https://gts.0x7be.net/tags/luanti" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Luanti</span></a> <a href="https://gts.0x7be.net/tags/minetestgame" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MinetestGame</span></a></p><p>//cc <span class="h-card"><a href="https://fosstodon.org/@whynothugo" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>whynothugo</span></a></span> (thanks) <span class="h-card"><a href="https://mastodon.social/@LXQt" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>LXQt</span></a></span> (thanks, too)</p>