xdg-desktop-portal requires an implementation to also be installed for it to work. Here's the list (packages): xdg-desktop-portal-cosmic xdg-desktop-portal-gnome xdg-desktop-portal-gtk xdg-desktop-portal-hyprland xdg-desktop-portal-kde6 xdg-desktop-portal-lxqt xdg-desktop-portal-pantheon xdg-desktop-portal-wlr If a user does not have at least one of these installed, it cannot work. It's also possible the less common implementations may have bugs. At least the gtk and kde6 implementation work fine, I tested them both in Firefox/Thunderbird for file dialogs. To force the use of a specific implementation, simply link to the implementation portals.conf file in ~/.config/xdg-desktop-portal (create that folder if necesary). For example to force the use of the kde portal: ln -s /usr/share/xdg-desktop-portal/kde-portals.conf portals.conf (then relogin for the change to take effect. A 'systemd --user restart xdg-desktop-portal' may also be sufficient). Also, for proper operation when using a Window Manager, I have these line in my Xorg startup script: dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY QT_AUTO_SCREEN_SCALE_FACTOR QT_SCREEN_SCALE_FACTORS GDK_SCALE GDK_DPI_SCALE GTK_THEME This will make these environment variables seen by the xdg-desktop-portal* processes. Some of them are necessary for proper scaling/theming if they are set by the user in his startup scripts.