Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save eddy-geek/29d8104bd73a94e38ac1e814fdd84905 to your computer and use it in GitHub Desktop.
Save eddy-geek/29d8104bd73a94e38ac1e814fdd84905 to your computer and use it in GitHub Desktop.

from what I can see only Hirsuite (21.04) has xdg-desktop-portal built with PipeWire support

doesn't seem true anymore (see below)

Environment

dpkg -l pipewire xdg-desktop-portal xdg-desktop-portal-kde kwin-wayland kwayland-integration

ii  kwayland-integration:amd64 4:5.22.5+p20.04+tstable+git20210919.0739-0
ii  kwin-wayland               4:5.22.5+p20.04+tstable+git20210921.0036-0
ii  pipewire:amd64             0.3.36-1~ubuntu20.04
ii  xdg-desktop-portal         1.8.1-1~20.04.sav0
ii  xdg-desktop-portal-kde     5.22.5+p20.04+tstable+git20210916.1559-0  
apt show xdg-desktop-portal-kde
...
Depends: pipewire ...

apt show xdg-desktop-portal
...
Depends: ... libpipewire-0.3-0

Portal

The important bit zkde_screencast_unstable_v1 does not seem to be available is here.

QT_LOGGING_RULES='xdp*.debug=true' /usr/lib/x86_64-linux-gnu/libexec/xdg-desktop-portal-kde

xdp-kde-screencast: CreateSession called with parameters: 
xdp-kde-screencast:     handle:  "/org/freedesktop/portal/desktop/request/1_260/webrtc1804142422" 
xdp-kde-screencast:     session_handle:  "/org/freedesktop/portal/desktop/session/1_260/webrtc_session1568871686" 
xdp-kde-screencast:     app_id:  "" 
xdp-kde-screencast:     options:  QMap() 
xdp-kde-screencast: zkde_screencast_unstable_v1 does not seem to be available 
xdp-kde-session: "org.freedesktop.impl.portal.Session" 
xdp-kde-session: "Close"

Chrome

PIPEWIRE_DEBUG=5:connection /opt/google/chrome/chrome –ozone-platform=wayland

(also with #use-ozone-platform and #enable-webrtc-pipewire-capturer flags set) [29668:29668:0921/144904.089619:ERROR:base_capturer_pipewire.cc(1008)] Failed to request the screen cast session subscription. [29668:29668:0921/144908.862530:ERROR:base_capturer_pipewire.cc(1008)] Failed to request the screen cast session subscription.

Kwin

KWin seems to be missing kwin5_plugin_screencasting

Available Plugins: 
------------------ 
kwin5_plugin_colord 
kwin5_plugin_krunner 
kwin5_plugin_nightcolor

dbus

dbus-monitor --session

dbus output
method call time=1632228587.246084 sender=:1.260 -> destination=:1.234 serial=47 path=/org/freedesktop/portal/desktop; interface=org.f
reedesktop.portal.ScreenCast; member=CreateSession 
  array [ 
     dict entry( 
        string "session_handle_token" 
        variant             string "webrtc_session1750635056" 
     ) 
     dict entry( 
        string "handle_token" 
        variant             string "webrtc1511927884" 
     ) 
  ] 
method call time=1632228587.246739 sender=:1.234 -> destination=org.freedesktop.DBus serial=356 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=AddMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.DBus.Properties',member='Properti
esChanged',path='/org/freedesktop/portal/desktop/request/1_260/webrtc1511927884',arg0='org.freedesktop.impl.portal.Request'" 
method return time=1632228587.246759 sender=org.freedesktop.DBus -> destination=:1.234 serial=287 reply_serial=356 
method call time=1632228587.246767 sender=:1.234 -> destination=org.freedesktop.DBus serial=357 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=AddMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.impl.portal.Request',path='/org/f
reedesktop/portal/desktop/request/1_260/webrtc1511927884'" 
method return time=1632228587.246778 sender=org.freedesktop.DBus -> destination=:1.234 serial=288 reply_serial=357 
method call time=1632228587.246784 sender=:1.234 -> destination=org.freedesktop.DBus serial=358 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=StartServiceByName 
  string "org.freedesktop.impl.portal.desktop.kde" 
  uint32 0 
method return time=1632228587.246799 sender=org.freedesktop.DBus -> destination=:1.234 serial=289 reply_serial=358 
  uint32 2 
method call time=1632228587.246924 sender=:1.234 -> destination=org.freedesktop.DBus serial=359 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=GetNameOwner 
  string "org.freedesktop.impl.portal.desktop.kde" 
method return time=1632228587.246941 sender=org.freedesktop.DBus -> destination=:1.234 serial=290 reply_serial=359 
  string ":1.230" 
method call time=1632228587.247112 sender=:1.234 -> destination=:1.230 serial=360 path=/org/freedesktop/portal/desktop/request/1_260/w
ebrtc1511927884; interface=org.freedesktop.DBus.Properties; member=GetAll 
  string "org.freedesktop.impl.portal.Request" 
error time=1632228587.247219 sender=:1.230 -> destination=:1.234 error_name=org.freedesktop.DBus.Error.UnknownObject reply_serial=360 
  string "No such object path '/org/freedesktop/portal/desktop/request/1_260/webrtc1511927884'" 
method call time=1632228587.247559 sender=:1.234 -> destination=org.freedesktop.DBus serial=361 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=AddMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.DBus.Properties',member='Properti
esChanged',path='/org/freedesktop/portal/desktop/session/1_260/webrtc_session1750635056',arg0='org.freedesktop.impl.portal.Session'" 
method return time=1632228587.247574 sender=org.freedesktop.DBus -> destination=:1.234 serial=291 reply_serial=361 
method call time=1632228587.247595 sender=:1.234 -> destination=org.freedesktop.DBus serial=362 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=AddMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.impl.portal.Session',path='/org/f
reedesktop/portal/desktop/session/1_260/webrtc_session1750635056'" 
method return time=1632228587.247607 sender=org.freedesktop.DBus -> destination=:1.234 serial=292 reply_serial=362 
method call time=1632228587.247660 sender=:1.234 -> destination=org.freedesktop.DBus serial=363 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=StartServiceByName 
  string "org.freedesktop.impl.portal.desktop.kde" 
  uint32 0 
method return time=1632228587.247672 sender=org.freedesktop.DBus -> destination=:1.234 serial=293 reply_serial=363 
  uint32 2 
method call time=1632228587.247828 sender=:1.234 -> destination=org.freedesktop.DBus serial=364 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=GetNameOwner 
  string "org.freedesktop.impl.portal.desktop.kde" 
method return time=1632228587.247844 sender=org.freedesktop.DBus -> destination=:1.234 serial=294 reply_serial=364 
  string ":1.230" 
method call time=1632228587.247981 sender=:1.234 -> destination=:1.230 serial=365 path=/org/freedesktop/portal/desktop/session/1_260/w
ebrtc_session1750635056; interface=org.freedesktop.DBus.Properties; member=GetAll 
  string "org.freedesktop.impl.portal.Session" 
error time=1632228587.248062 sender=:1.230 -> destination=:1.234 error_name=org.freedesktop.DBus.Error.UnknownObject reply_serial=365 
  string "No such object path '/org/freedesktop/portal/desktop/session/1_260/webrtc_session1750635056'" 
method call time=1632228587.248289 sender=:1.234 -> destination=:1.230 serial=366 path=/org/freedesktop/portal/desktop; interface=org.
freedesktop.impl.portal.ScreenCast; member=CreateSession 
  object path "/org/freedesktop/portal/desktop/request/1_260/webrtc1511927884" 
  object path "/org/freedesktop/portal/desktop/session/1_260/webrtc_session1750635056" 
  string "" 
  array [ 
  ] 
method return time=1632228587.248346 sender=:1.234 -> destination=:1.260 serial=367 reply_serial=47 
  object path "/org/freedesktop/portal/desktop/request/1_260/webrtc1511927884" 
method return time=1632228587.248646 sender=:1.230 -> destination=:1.234 serial=340 reply_serial=366 
  uint32 2 
  array [ 
  ] 
signal time=1632228587.248973 sender=:1.234 -> destination=:1.260 serial=368 path=/org/freedesktop/portal/desktop/request/1_260/webrtc
1511927884; interface=org.freedesktop.portal.Request; member=Response 
  uint32 2 
  array [ 
     dict entry( 
        string "session_handle" 
        variant             string "/org/freedesktop/portal/desktop/session/1_260/webrtc_session1750635056" 
     ) 
  ] 
method call time=1632228587.249130 sender=:1.234 -> destination=:1.230 serial=369 path=/org/freedesktop/portal/desktop/session/1_260/w
ebrtc_session1750635056; interface=org.freedesktop.impl.portal.Session; member=Close 
method return time=1632228587.249203 sender=:1.230 -> destination=:1.234 serial=341 reply_serial=369 
method call time=1632228587.249616 sender=:1.234 -> destination=org.freedesktop.DBus serial=370 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=RemoveMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.DBus.Properties',member='Properti
esChanged',path='/org/freedesktop/portal/desktop/session/1_260/webrtc_session1750635056',arg0='org.freedesktop.impl.portal.Session'" 
method return time=1632228587.249627 sender=org.freedesktop.DBus -> destination=:1.234 serial=295 reply_serial=370 
method call time=1632228587.249743 sender=:1.234 -> destination=org.freedesktop.DBus serial=371 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=RemoveMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.impl.portal.Session',path='/org/f
reedesktop/portal/desktop/session/1_260/webrtc_session1750635056'" 
method return time=1632228587.249757 sender=org.freedesktop.DBus -> destination=:1.234 serial=296 reply_serial=371 
method call time=1632228587.249763 sender=:1.234 -> destination=org.freedesktop.DBus serial=372 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=RemoveMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.DBus.Properties',member='Properti
esChanged',path='/org/freedesktop/portal/desktop/request/1_260/webrtc1511927884',arg0='org.freedesktop.impl.portal.Request'" 
method return time=1632228587.249772 sender=org.freedesktop.DBus -> destination=:1.234 serial=297 reply_serial=372 
method call time=1632228587.249787 sender=:1.234 -> destination=org.freedesktop.DBus serial=373 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=RemoveMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.impl.portal.Request',path='/org/f
reedesktop/portal/desktop/request/1_260/webrtc1511927884'" 
method return time=1632228587.249797 sender=org.freedesktop.DBus -> destination=:1.234 serial=298 reply_serial=373
```

same, with obs 27

method call time=1632225573.841007 sender=:1.238 -> destination=:1.234 serial=29 path=/org/freedesktop/portal/desktop; interface=org.f
reedesktop.portal.ScreenCast; member=CreateSession 
  array [ 
     dict entry( 
        string "handle_token" 
        variant             string "obs3" 
     ) 
     dict entry( 
        string "session_handle_token" 
        variant             string "obs3" 
     ) 
  ] 
method call time=1632225573.842424 sender=:1.234 -> destination=org.freedesktop.DBus serial=195 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=AddMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.DBus.Properties',member='Properti
esChanged',path='/org/freedesktop/portal/desktop/request/1_238/obs3',arg0='org.freedesktop.impl.portal.Request'" 
method return time=1632225573.842566 sender=org.freedesktop.DBus -> destination=:1.234 serial=155 reply_serial=195 
method call time=1632225573.842572 sender=:1.234 -> destination=org.freedesktop.DBus serial=196 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=AddMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.impl.portal.Request',path='/org/f
reedesktop/portal/desktop/request/1_238/obs3'" 
method return time=1632225573.842591 sender=org.freedesktop.DBus -> destination=:1.234 serial=156 reply_serial=196 
method call time=1632225573.842650 sender=:1.234 -> destination=org.freedesktop.DBus serial=197 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=StartServiceByName 
  string "org.freedesktop.impl.portal.desktop.kde" 
  uint32 0 
method return time=1632225573.842669 sender=org.freedesktop.DBus -> destination=:1.234 serial=157 reply_serial=197 
  uint32 2 
method call time=1632225573.842965 sender=:1.234 -> destination=org.freedesktop.DBus serial=198 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=GetNameOwner 
  string "org.freedesktop.impl.portal.desktop.kde" 
method return time=1632225573.843031 sender=org.freedesktop.DBus -> destination=:1.234 serial=158 reply_serial=198 
  string ":1.230" 
method call time=1632225573.843461 sender=:1.234 -> destination=:1.230 serial=199 path=/org/freedesktop/portal/desktop/request/1_238/o
bs3; interface=org.freedesktop.DBus.Properties; member=GetAll 
  string "org.freedesktop.impl.portal.Request" 
error time=1632225573.843851 sender=:1.230 -> destination=:1.234 error_name=org.freedesktop.DBus.Error.UnknownObject reply_serial=199 
  string "No such object path '/org/freedesktop/portal/desktop/request/1_238/obs3'" 
method call time=1632225573.845569 sender=:1.234 -> destination=org.freedesktop.DBus serial=200 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=AddMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.DBus.Properties',member='Properti
esChanged',path='/org/freedesktop/portal/desktop/session/1_238/obs3',arg0='org.freedesktop.impl.portal.Session'" 
method return time=1632225573.845700 sender=org.freedesktop.DBus -> destination=:1.234 serial=159 reply_serial=200 
method call time=1632225573.845714 sender=:1.234 -> destination=org.freedesktop.DBus serial=201 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=AddMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.impl.portal.Session',path='/org/f
reedesktop/portal/desktop/session/1_238/obs3'" 
method return time=1632225573.845731 sender=org.freedesktop.DBus -> destination=:1.234 serial=160 reply_serial=201 
method call time=1632225573.845878 sender=:1.234 -> destination=org.freedesktop.DBus serial=202 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=StartServiceByName 
  string "org.freedesktop.impl.portal.desktop.kde" 
  uint32 0 
method return time=1632225573.845923 sender=org.freedesktop.DBus -> destination=:1.234 serial=161 reply_serial=202 
  uint32 2 
method call time=1632225573.846235 sender=:1.234 -> destination=org.freedesktop.DBus serial=203 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=GetNameOwner 
  string "org.freedesktop.impl.portal.desktop.kde" 
method return time=1632225573.846245 sender=org.freedesktop.DBus -> destination=:1.234 serial=162 reply_serial=203 
  string ":1.230" 
method call time=1632225573.846643 sender=:1.234 -> destination=:1.230 serial=204 path=/org/freedesktop/portal/desktop/session/1_238/o
bs3; interface=org.freedesktop.DBus.Properties; member=GetAll 
  string "org.freedesktop.impl.portal.Session" 
error time=1632225573.847084 sender=:1.230 -> destination=:1.234 error_name=org.freedesktop.DBus.Error.UnknownObject reply_serial=204 
  string "No such object path '/org/freedesktop/portal/desktop/session/1_238/obs3'" 
method call time=1632225573.847699 sender=:1.234 -> destination=:1.230 serial=205 path=/org/freedesktop/portal/desktop; interface=org.
freedesktop.impl.portal.ScreenCast; member=CreateSession 
  object path "/org/freedesktop/portal/desktop/request/1_238/obs3" 
  object path "/org/freedesktop/portal/desktop/session/1_238/obs3" 
  string "" 
  array [ 
  ] 
method return time=1632225573.847807 sender=:1.234 -> destination=:1.238 serial=206 reply_serial=29 
  object path "/org/freedesktop/portal/desktop/request/1_238/obs3" 
method return time=1632225573.848286 sender=:1.230 -> destination=:1.234 serial=104 reply_serial=205 
  uint32 2 
  array [ 
  ] 
signal time=1632225573.849289 sender=:1.234 -> destination=:1.238 serial=207 path=/org/freedesktop/portal/desktop/request/1_238/obs3; 
interface=org.freedesktop.portal.Request; member=Response 
  uint32 2 
  array [ 
     dict entry( 
        string "session_handle" 
        variant             string "/org/freedesktop/portal/desktop/session/1_238/obs3" 
     ) 
  ] 
method call time=1632225573.849345 sender=:1.234 -> destination=:1.230 serial=208 path=/org/freedesktop/portal/desktop/session/1_238/o
bs3; interface=org.freedesktop.impl.portal.Session; member=Close 
method return time=1632225573.849675 sender=:1.230 -> destination=:1.234 serial=105 reply_serial=208 
method call time=1632225573.850000 sender=:1.234 -> destination=org.freedesktop.DBus serial=209 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=RemoveMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.DBus.Properties',member='Properti
esChanged',path='/org/freedesktop/portal/desktop/session/1_238/obs3',arg0='org.freedesktop.impl.portal.Session'" 
method return time=1632225573.850015 sender=org.freedesktop.DBus -> destination=:1.234 serial=163 reply_serial=209 
method call time=1632225573.850104 sender=:1.234 -> destination=org.freedesktop.DBus serial=210 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=RemoveMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.impl.portal.Session',path='/org/f
reedesktop/portal/desktop/session/1_238/obs3'" 
method return time=1632225573.850118 sender=org.freedesktop.DBus -> destination=:1.234 serial=164 reply_serial=210 
method call time=1632225573.850139 sender=:1.234 -> destination=org.freedesktop.DBus serial=211 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=RemoveMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.DBus.Properties',member='Properti
esChanged',path='/org/freedesktop/portal/desktop/request/1_238/obs3',arg0='org.freedesktop.impl.portal.Request'" 
method return time=1632225573.850150 sender=org.freedesktop.DBus -> destination=:1.234 serial=165 reply_serial=211 
method call time=1632225573.850167 sender=:1.234 -> destination=org.freedesktop.DBus serial=212 path=/org/freedesktop/DBus; interface=
org.freedesktop.DBus; member=RemoveMatch 
  string "type='signal',sender='org.freedesktop.impl.portal.desktop.kde',interface='org.freedesktop.impl.portal.Request',path='/org/f
reedesktop/portal/desktop/request/1_238/obs3'" 
method return time=1632225573.850174 sender=org.freedesktop.DBus -> destination=:1.234 serial=166 reply_serial=212
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment