Just having the correct XDG_CURRENT_DESKTOP isn’t negating the need for the DE-portals.conf … at least from my testing:
I removed my portals conf, XDG_CURRENT_DESKTOP set correctly, ran test, it broke again:
~]$ mv ~/.config/xdg-desktop-portal/xfce-portals.conf ~/.config/xdg-desktop-portal/nope-portals.conf
~]$ systemctl --user show-environment | grep XFCE
XDG_CURRENT_DESKTOP=XFCE
~]$ systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-xapp.service xdg-desktop-portal-gtk.service
~]$ flatpak run --log-session-bus com.xnview.XnViewMP
- Open URL from menu, problem is back:
C13: -> org.freedesktop.portal.Desktop call org.freedesktop.portal.OpenURI.OpenURI at /org/freedesktop/portal/desktop
B44: <- :1.612 return error org.freedesktop.DBus.Error.UnknownMethod from C13
Then I restored the missing portals conf, ran test and it worked again:
~]$ mv ~/.config/xdg-desktop-portal/nope-portals.conf ~/.config/xdg-desktop-portal/xfce-portals.con
~]$ systemctl --user show-environment | grep XFCE
XDG_CURRENT_DESKTOP=XFCE
~]$ systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-xapp.service xdg-desktop-portal-gtk.service
~]$ flatpak run --log-session-bus com.xnview.XnViewMP
- Open URL from menu, problem is solved again:
C13: -> org.freedesktop.portal.Desktop call org.freedesktop.portal.OpenURI.OpenURI at /org/freedesktop/portal/desktop
B116: <- :1.617 return from C13
B119: <- :1.617 signal org.freedesktop.portal.Request.Response at /org/freedesktop/portal/desktop/request/1_620/t
EDIT: and while I’m at it, I also removed xapp to check if two portals mess with GTK doing its job without portals.conf , it appears xdg-desktop-portal-gtk also needs the portals conf to work:
~]$ pacman -Q | grep portal
xdg-desktop-portal 1.18.0-2
xdg-desktop-portal-gtk 1.15.1-1
~]$ mv ~/.config/xdg-desktop-portal/xfce-portals.conf ~/.config/xdg-desktop-portal/nope-portals.conf
~]$ systemctl --user show-environment | grep XFCE
XDG_CURRENT_DESKTOP=XFCE
~]$ systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-gtk.service
~]$ flatpak run --log-session-bus com.xnview.XnViewMP
- Open URL from menu, problem is back:
C13: -> org.freedesktop.portal.Desktop call org.freedesktop.portal.OpenURI.OpenURI at /org/freedesktop/portal/desktop
B33: <- :1.631 return error org.freedesktop.DBus.Error.UnknownMethod from C13
~]$ mv ~/.config/xdg-desktop-portal/nope-portals.conf ~/.config/xdg-desktop-portal/xfce-portals.conf
~]$ cat ~/.config/xdg-desktop-portal/xfce-portals.conf
[preferred]
default=gtk;
org.freedesktop.portal.OpenURI.OpenURI=gtk;
~]$ flatpak run --log-session-bus com.xnview.XnViewMP
- Opened option to load file manager, thunar loaded :
C13: -> org.freedesktop.portal.Desktop call org.freedesktop.portal.OpenURI.OpenFile at /org/freedesktop/portal/desktop
B94: <- :1.635 return from C13
B98: <- :1.635 signal org.freedesktop.portal.Request.Response at /org/freedesktop/portal/desktop/request/1_638/t
EDIT2:
Looks like peeps from other distros also found these issue:
https://bugzilla.redhat.com/show_bug.cgi?id=2249224
On the subject of “XDG_* environment variables don’t end up in the environment of processes started by dbus-daemon or systemd”
EDIT3
I wish I had found this issue tracker earlier:
Good read, straight from the horses’ mouths, TL;DR xfce-portals.conf IS needed now and will come with xfce4-session, mixing and matching portals IS valid, gtk covers most, but not everything, e.g. xapp is needed for screenshot and to set a wallpaper; xfce4-session will also ensure the various XDG_* env vars
EDIT4 … final fix until the stuff in EDIT3 is addressed:
This is for XFCE users only:
xdg-desktop-portal
xdg-desktop-portal-xapp
xdg-desktop-portal-gtk
[preferred]
default=gtk;
org.freedesktop.impl.portal.Wallpaper=xapp;gtk;
org.freedesktop.impl.portal.Screenshot=xapp;gtk;
- Reboot … or restart the following services to make everything work:
systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-xapp.service xdg-desktop-portal-gtk.service