Hi Rutherther,

thanks a lot for your explanations.
After removing
exec $HOME/.guix-home/profile/libexec/xdg-desktop-portal -r /dev/null 2>&1 & exec $HOME/.guix-home/profile/libexec/xdg-desktop-portal-wlr -r /dev/null 2>&1 &

and starting sway without dbus-run-session screensharing worked under jitsi in firefox. I stopped sway logged out and started it again and it still worked.

I should have stopped then and be happy but I continued...

Next thing I tried was if I can also remove
$HOME/.guix-home/profile/bin/dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway >/dev/null 2>&1

or `(service home-pipewire-service-type)`.

Neither worked, so I put both in again and guess what, screensharing doesn't work.
I logged out, rebooted, repeated the first steps, nothing helps.

I tried to debug the dbus while trying to activate screensharing. There is an error, when I try to actiate screensharing but I'm not a dbus expert so I have no idea what goes wrong.
error time=1768490440.178991 sender=:1.35 -> destination=:1.34 error_name=org.freedesktop.DBus.Error.InvalidArgs reply_serial=136 string "No such interface “org.freedesktop.portal.ScreenCast”"

Maybe someone has an idea. Below comes the full output of dbus-monitor.

Best regards
Alex

------------------------------

$ dbus-monitor signal time=1768490428.791184 sender=org.freedesktop.DBus -> destination=:1.43 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
  string ":1.43"
signal time=1768490428.791213 sender=org.freedesktop.DBus -> destination=:1.43 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
  string ":1.43"
method call time=1768490440.173957 sender=:1.34 -> destination=org.freedesktop.DBus serial=132 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch string "type='signal',sender='org.freedesktop.portal.Desktop',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',path='/org/freedesktop/portal/desktop',arg0='org.freedesktop.portal.ScreenCast'" method return time=1768490440.173980 sender=org.freedesktop.DBus -> destination=:1.34 serial=117 reply_serial=132 method call time=1768490440.173987 sender=:1.34 -> destination=org.freedesktop.DBus serial=133 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch string "type='signal',sender='org.freedesktop.portal.Desktop',interface='org.freedesktop.portal.ScreenCast',path='/org/freedesktop/portal/desktop'" method return time=1768490440.173992 sender=org.freedesktop.DBus -> destination=:1.34 serial=118 reply_serial=133 method call time=1768490440.173995 sender=:1.34 -> destination=org.freedesktop.DBus serial=134 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=StartServiceByName
  string "org.freedesktop.portal.Desktop"
  uint32 0
method return time=1768490440.174002 sender=org.freedesktop.DBus -> destination=:1.34 serial=119 reply_serial=134
  uint32 2
method call time=1768490440.178390 sender=:1.34 -> destination=org.freedesktop.DBus serial=135 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
  string "org.freedesktop.portal.Desktop"
method return time=1768490440.178409 sender=org.freedesktop.DBus -> destination=:1.34 serial=120 reply_serial=135

string ":1.35"
method call time=1768490440.178540 sender=:1.34 -> destination=:1.35 serial=136 path=/org/freedesktop/portal/desktop; interface=org.freedesktop.DBus.Properties; member=GetAll
  string "org.freedesktop.portal.ScreenCast"
error time=1768490440.178991 sender=:1.35 -> destination=:1.34 error_name=org.freedesktop.DBus.Error.InvalidArgs reply_serial=136
  string "No such interface “org.freedesktop.portal.ScreenCast”"
method call time=1768490440.179246 sender=:1.34 -> destination=:1.35 serial=137 path=/org/freedesktop/portal/desktop; interface=org.freedesktop.portal.ScreenCast; member=CreateSession
  array [
     dict entry(
        string "session_handle_token"
        variant             string "webrtc_session215668795"
     )
     dict entry(
        string "handle_token"
        variant             string "webrtc_544752765"
     )
  ]
error time=1768490440.179464 sender=:1.35 -> destination=:1.34 error_name=org.freedesktop.DBus.Error.UnknownMethod reply_serial=137 string "No such interface “org.freedesktop.portal.ScreenCast” on object at path /org/freedesktop/portal/desktop" method call time=1768490440.181008 sender=:1.34 -> destination=org.freedesktop.DBus serial=138 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch string "type='signal',sender='org.freedesktop.portal.Desktop',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',path='/org/freedesktop/portal/desktop',arg0='org.freedesktop.portal.ScreenCast'" method return time=1768490440.181029 sender=org.freedesktop.DBus -> destination=:1.34 serial=121 reply_serial=138 method call time=1768490440.181035 sender=:1.34 -> destination=org.freedesktop.DBus serial=139 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch string "type='signal',sender='org.freedesktop.portal.Desktop',interface='org.freedesktop.portal.ScreenCast',path='/org/freedesktop/portal/desktop'" method return time=1768490440.181044 sender=org.freedesktop.DBus -> destination=:1.34 serial=122 reply_serial=139


On Thu, Jan 15 2026, 15:17:12, Rutherther <[email protected]> wrote:

Hi Alex,

Alexander Asteroth <[email protected]> writes:

Dear all,

I considered all of the hints that were given in this 1 year old thread. My configuration currently is similar to the one presented by Arnaud:

```
                                                        (service 
home-pipewire-service-type)
                                                        (service 
home-dbus-service-type)
```

in my `home-config.scm` plus

```
exec $HOME/.guix-home/profile/bin/dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway >/dev/null 2>&1 & exec $HOME/.guix-home/profile/libexec/xdg-desktop-portal -r
/dev/null 2>&1 &
exec $HOME/.guix-home/profile/libexec/xdg-desktop-portal-wlr -r
/dev/null 2>&1 &
```

Those are d-bus services. They should typically be started by dbus. To do that you would install them to your home. And you're good to go. Using -r can be good for debugging what implementations are used. Moreover even when starting manually, starting -wlr as well is also
unnecessary as the main desktop portal does start all the
implementations it chooses. Feel free to try with -v verbose log to see
what implementations are actually being chosen.


in my `$HOME/.config/sway/config`

And sway is started using `dbus-run-session -- sway` from a login tty.

This is wrong. By this you've made a nested dbus session that cannot communicate with the session that runs pipewire. And that is probably
the cause of the issue you're seeing.

The home-dbus-service-type already starts a dbus session upon login and
you should have DBUS_SESSION_BUS_ADDRESS set by it.

If you're already inside of a running d-bus session, just start `sway`,
not with `dbus-run-session`.

Rutherther

Reply via email to