Introduction to xdg-desktop-portal

xdg-desktop-portal is a D-Bus service that allows applications to interact with the desktop in a safe way. Several aspects of desktop interaction, like file chooser, desktop style, etc are implemented in different D-Bus APIs, known as portals. Sandboxed applications benefit the most from this service since they don't need special permissions to use the portal APIs, but any application can use it. xdg-desktop-portal safeguards many resources and features with a user-controlled permission system. This service needs a backend implementing desktop-specific portal interfaces.

This package is known to build and work properly using an LFS 12.1 platform.

Package Information

xdg-desktop-portal Dependencies


Fuse-3.16.2, gdk-pixbuf-2.42.10, JSON-GLib-1.8.0, pipewire-1.0.3, and dbus-1.14.10 (at runtime). Furthermore, a backend is needed at runtime for this package to be of any use, either xdg-desktop-portal-gtk-1.15.1 or xdg-desktop-portal-gnome-45.1 or xdg-desktop-portal-lxqt-0.5.0




Although there is an option to build the package without bubblewrap, upstream developers and LFS editors alike highly recommend to not use this possibility, that would create a big security hole.


GeoClue-2.7.1 (for the location portal), and pytest-8.0.0 with libportal-0.7.1 and dbusmock-0.30.2 (for running tests)

Optional (for building the documentation)

sphinx-7.2.6 with sphinxext.opengraph, sphinx_copybutton, furo, and flatpak

Installation of xdg-desktop-portal

Install xdg-desktop-portal by running the following commands:

mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release .. &&

If you have installed the needed dependencies, you can test the results by running ninja test. Six tests are known to fail if you are not using gnome-terminal-3.50.1 and are in GNOME.

Now, as the root user:

ninja install

Configuring xdg-desktop-portal

Config Files

The main configuration files are ~/.config/xdg-desktop-portal/portals.conf, /etc/xdg-desktop-portal/portals.conf, and /usr/share/xdg-desktop-portal/portals.conf. Several other locations can be searched for configuration files. See portals.conf(5).

Configuration Information

The various configuration files are used to choose the backend depending of various conditions. See portals.conf(5) for details.


Installed Programs: several daemons in /usr/libexec
Installed Librar(y,ies): None
Installed Director(y,ies): None