Skip to content
Back to top
View this page

# System Integration

## D-Bus Activation Environment

XDG Desktop Portal and its portal backends are activatable D-Bus services. This means that they inherit environment variables from the “activation environment” maintained by either `systemd --user` (on systems that use systemd) or `dbus-daemon` (on systems that do not). They do not inherit environment variables from the GUI environment or from the shell, unless some component of the overall system takes responsibility for taking the necessary environment variables from the GUI environment and sending them to `systemd` or `dbus-daemon` to be added to the activation environment.

In integrated desktop environments such as GNOME and KDE Plasma, and in OS distributions with a high level of integration, this should be done automatically by desktop environment or OS infrastructure.

Variables that might need to be propagated in this way include, but are not limited to:

- `DISPLAY`

- `PATH`

- `WAYLAND_DISPLAY`

- `XAUTHORITY`

- `XDG_CURRENT_DESKTOP`

- `XDG_DATA_DIRS`

In environments that are assembled out of individual components by the user, it is the user’s responsibility to ensure that this system integration has been done, for example by using dbus-update-activation-environment(1) or systemctl –user import-environment VAR….

## Desktop Environment Requirements

The display manager or GUI environment is responsible for setting `XDG_CURRENT_DESKTOP` to an appropriate value.

The GUI environment should provide a portal configuration file with a name based on its `XDG_CURRENT_DESKTOP`, to select appropriate portal backends.

The GUI environment should arrange for its required portal backend or backends to be installed as dependencies (possibly as optional dependencies, if it is packaged in a loosely-coupled operating system).

In environments that are assembled out of individual components by the user, it is the user’s responsibility to ensure that this system integration has been done.