Desktop integration portal
C PHP M4 C++ Other
Latest commit dc0d553 Feb 17, 2017 Matthias Clasen Handle g_variant_lookup failure
We must not look at the permissions in this case.


A portal frontend service for Flatpak and possibly other desktop containment frameworks.

xdg-desktop-portal works by exposing a series of D-Bus interfaces known as portals under a well-known name (org.freedesktop.portal.Desktop) and object path (/org/freedesktop/portal/desktop).

The portal interfaces include APIs for file access, opening URIs, printing and others.

Documentation for the available D-Bus interfaces can be found here.

Building xdg-desktop-portal

xdg-desktop-portal depends on GLib and Flatpak. To build the documentation, you will need xmlto and the docbook stylesheets.

Using portals

Flatpak grants sandboxed applications talk access to names in the org.freedesktop.portal.* prefix. One possible way to use the portal APIs is thus just to make D-Bus calls. For many of the portals, toolkits (e.g. GTK+) are expected to support portals transparently if you use suitable high-level APIs.

To actually use most portals, xdg-desktop-portal relies on a backend that provides implementations of the org.freedesktop.impl.portal.* interfaces. One such backend is provided by xdg-desktop-portal-gtk. Another one is in development here: xdg-desktop-portal-kde.