Subject: bug#52492: closed (Re: bug#52492: [PATCH 0/7] Improve screen sharing support under Wayland)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 19 Dec 2021 12:23:02 +0000

Your bug report

#52492: [PATCH 0/7] Improve screen sharing support under Wayland

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
52492: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=52492
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#52492: [PATCH 0/7] Improve screen sharing support under Wayland
From: Mathieu Othacehe <[email-masked]>
To: Josselin Poiret <[email-masked]>
Cc: [email-masked]
Date: Sun, 19 Dec 2021 13:22:22 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hey Josselin,

Thanks for working on that. I fixed a few minor details and pushed the
series.

> I can get screensharing working in icecat on sway by manually starting
> pipewire then wireplumber (and then xdg-desktop-portal-wlr followed by
> xdg-desktop-portal if they're not installed in your profile, otherwise
> your user DBus session will launch them automatically), and starting
> icecat with

As discussed on #guix, we may need to find a way to start those services
automatically.

> since the pipewire library is dlopened by libwebrtc rather than
> statically or dynamically linked.  We could possibly add this to the
> icecat package, as it has a wrapper doing a similar thing for other
> libraries.

Seems fair.

I also tried to run obs, this way:

--8<---------------cut here---------------start------------->8---
QT_QPA_PLATFORM=wayland obs
--8<---------------cut here---------------end--------------->8---

was prompted for a screen/window to capture using pipewire, but then I
have the following error, does that ring a bell?

--8<---------------cut here---------------start------------->8---
info: ------------------------------------------------
info: Loaded scenes:
info: - scene 'Scene':
info:     - source: 'Window Capture (PipeWire)' (pipewire-window-capture-source)
info: ------------------------------------------------
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
info: [pipewire] available cursor modes:
info: [pipewire]     - Metadata
info: [pipewire]     - Always visible
info: [pipewire]     - Hidden
Attempted path: share/obs/obs-studio/images/overflow.png
Attempted path: /gnu/store/1fp8wl9y2i72ld59d1spw85xvw9l88ws-obs-27.0.1/share/obs/obs-studio/images/overflow.png
info: [pipewire] screencast session created
info: [pipewire] asking for window…
info: adding 42 milliseconds of audio buffering, total audio buffering is now 42 milliseconds (source: Mic/Aux)

warning: [pipewire] Failed to start screencast, denied or cancelled by user
info: PipeWire initialized (sender name: 1_1734)
info: User added source 'Screen Capture (PipeWire)' (pipewire-desktop-capture-source) to scene 'Scene'
info: [pipewire] available cursor modes:
info: [pipewire]     - Metadata
info: [pipewire]     - Always visible
info: [pipewire]     - Hidden
info: [pipewire] screencast session created
info: [pipewire] asking for desktop…
warning: [pipewire] Failed to start screencast, denied or cancelled by user
^Cinfo: ==== Shutting down ==================================================
--8<---------------cut here---------------end--------------->8---

Thanks,

Mathieu

Subject: [PATCH 0/7] Improve screen sharing support under Wayland
From: Josselin Poiret <[email-masked]>
To: [email-masked]
Cc: Josselin Poiret <[email-masked]>
Date: Tue, 14 Dec 2021 22:45:02 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

This patchset updates and improves various packages related to screen
sharing/screeshotting on Wayland, and especially wlroots-based
compositors.

I can get screensharing working in icecat on sway by manually starting
pipewire then wireplumber (and then xdg-desktop-portal-wlr followed by
xdg-desktop-portal if they're not installed in your profile, otherwise
your user DBus session will launch them automatically), and starting
icecat with

`LD_LIBRARY_PATH="$(./pre-inst-env guix build
pipewire)/lib:$LD_LIBRARY_PATH" icecat`

since the pipewire library is dlopened by libwebrtc rather than
statically or dynamically linked.  We could possibly add this to the
icecat package, as it has a wrapper doing a similar thing for other
libraries.

Another way to test screensharing without icecat would be to use this
python script [1], using `guix shell python python-pygobject
gst-plugins-bad pipewire python-dbus -- python3 xdp-screen-cast.py`.

I also took the liberty to patch xdg-desktop-portal-wlr's
screenshotting process, as it simply execl'd to slurp and grim.  Along
with an update to flameshot, I can use the latter properly on sway as
well.

Best,
Josselin

[1] https://gitlab.gnome.org/-/snippets/19

Josselin Poiret (7):
  gnu: pipewire-0.3: Use new input style
  gnu: pipewire-0.3: Update to 0.3.41
  gnu: Add wireplumber
  gnu: xdg-desktop-portal-wlr: Update to 0.5.0
  gnu: xdg-desktop-portal-wlr: Use new input style
  gnu: xdg-desktop-portal-wlr: Add binary dependencies
  gnu: flameshot: Update to 0.10.2

 gnu/local.mk                                  |  1 +
 gnu/packages/freedesktop.scm                  | 38 ++++++++++----
 gnu/packages/image.scm                        |  4 +-
 gnu/packages/linux.scm                        | 52 +++++++++++++++----
 ...g-desktop-portal-wlr-harcoded-length.patch | 28 ++++++++++
 5 files changed, 100 insertions(+), 23 deletions(-)
 create mode 100644 gnu/packages/patches/xdg-desktop-portal-wlr-harcoded-length.patch

-- 
2.34.0