- Main bug: Can't share screen on a Wayland session with Firefox https://bugs.kde.org/show_bug.cgi?id=439607
from what I can see only Hirsuite (21.04) has xdg-desktop-portal built with PipeWire support
doesn't seem true anymore (see below)
- Code: https://invent.kde.org/libraries/plasma-wayland-protocols/-/merge_requests/1/
- Context: https://soyuka.me/make-screen-sharing-wayland-sway-work/
- Other distros:
- pipewire from https://pipewire-debian.github.io/pipewire-debian/
- xdg-desktop-portal from https://launchpad.net/~savoury1/+archive/ubuntu/backports/
- xdg-desktop-portal-kde from deb http://archive.neon.kde.org/testing focal main
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
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"
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 seems to be missing kwin5_plugin_screencasting
Available Plugins:
------------------
kwin5_plugin_colord
kwin5_plugin_krunner
kwin5_plugin_nightcolor
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