Files
tdesktop/Telegram/ThirdParty/xdg-desktop-portal/doc/for-desktop-developers.rst
allhaileris afb81b8278
Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled
init
2026-02-16 15:50:16 +03:00

102 lines
3.1 KiB
ReStructuredText

For Desktop Developers
======================
The separation of the portal infrastructure into frontend and backend is a clean
way to provide suitable user interfaces that fit into different desktop
environments, while sharing the portal frontend.
The portal backends are focused on providing user interfaces and accessing
session- or host-specific APIs and resources. Details of interacting with the
containment infrastructure such as checking access, registering files in the
Document portal, etc., are handled by the portal frontend.
Portal backends can be layered together. For example, in a GNOME session, most
portal backend interfaces are implemented by the GNOME portal backend, but
the :doc:`org.freedesktop.impl.portal.Access <doc-org.freedesktop.impl.portal.Access>`
interface is implemented by GNOME Shell.
.. toctree::
:hidden:
writing-a-new-backend
configuration-file
system-integration
.. cssclass:: tiled-toc
* .. image:: _static/img/tiles/Backend-l.png
:target: writing-a-new-backend.html
:class: only-light
.. image:: _static/img/tiles/Backend-d.png
:target: writing-a-new-backend.html
:class: only-dark
:doc:`Writing a New Backend </writing-a-new-backend>`
* .. image:: _static/img/tiles/Config-l.png
:target: configuration-file.html
:class: only-light
.. image:: _static/img/tiles/Config-d.png
:target: configuration-file.html
:class: only-dark
:doc:`Configuration File </configuration-file>`
* .. image:: _static/img/tiles/System-integration-l.png
:target: system-integration.html
:class: only-light
.. image:: _static/img/tiles/System-integration-d.png
:target: system-integration.html
:class: only-dark
:doc:`System Integration </system-integration>`
D-Bus Interfaces
----------------
Portal backends must implement one or more backend D-Bus interfaces. The list of
D-Bus interfaces can be found below:
.. toctree::
:hidden:
impl-dbus-interfaces
.. cssclass:: tiled-toc
* .. image:: _static/img/tiles/Dbus-l.png
:target: impl-dbus-interfaces.html
:class: only-light
.. image:: _static/img/tiles/Dbus-d.png
:target: impl-dbus-interfaces.html
:class: only-dark
:doc:`Backend D-BUS Interfaces </impl-dbus-interfaces>`
Background Apps Monitor
-----------------------
In addition to managing the regular interfaces that sandboxed applications
use to interfact with the host system, XDG Desktop Portal also monitors
running applications without an active window - if the portal backend
provides an implementation of the Background portal.
This API can be used by host system services to provide rich interfaces to
manage background running applications.
.. toctree::
:hidden:
doc-org.freedesktop.background.Monitor.rst
.. cssclass:: tiled-toc
* .. image:: _static/img/tiles/Bmon-l.png
:target: doc-org.freedesktop.background.Monitor.html
:class: only-light
.. image:: _static/img/tiles/Bmon-d.png
:target: doc-org.freedesktop.background.Monitor.html
:class: only-dark
:doc:`Background Apps Monitor </doc-org.freedesktop.background.Monitor>`