XDG Desktop Portal (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
XDG Desktop Portal
. Дата последней синхронизации: 8 мая 2025. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
Flatpak
PipeWire (Русский)#Демонстрация экрана WebRTC
Из
документации Flatpak
:
Порталы — это фреймворк для обеспечения безопасного доступа к ресурсам, находящимся за пределами песочницы приложения. Они предоставляют приложениям ряд часто используемых функций, в том числе: определение состояния сети, открытие файла через диалог выбора файла, открытие URI, создание скриншотов и скринкастов.
Порталы были разработаны для использования с приложениями, запускаемыми в песочнице
Flatpak
, но их может использовать любое приложение для реализации функций независимо от используемого инструментария или текущей среды рабочего стола. Это обычно используется, например, для
демонстрации экрана
в сеансах
Wayland
через
PipeWire
или для
использования системых диалогов открытия и сохранения файла
в
Firefox
.
Установка
Установите
пакет
xdg-desktop-portal
, а также один или несколько
бэкендов
. Пакет предоставляет
пользовательскую службу
, которая будет запускаться автоматически через
D-Bus
.
Бэкенды
Когда приложение отправляет запрос в портал, его обрабатывает
xdg-desktop-portal
, который затем перенаправляет его в конкретный бэкенд. Это позволяет бэкендам реализовывать подходящие пользовательские интерфейсы, которые вписываются в среду рабочего стола, и использовать специфические для среды API запросов вроде открытия ссылки или захвата экрана. Можно установить и использовать несколько бэкендов одновременно. Например, в
Sway
может использоваться
xdg-desktop-portal-wlr
для захвата экрана и
xdg-desktop-portal-gtk
в качестве запасного варианта для всех остальных интерфейсов, которые
xdg-desktop-portal-wlr
не реализует.
Определения бэкэндов находятся в файлах
/usr/share/xdg-desktop-portal/portals/*.portal
. Каждый файл содержит список интерфейсов, которые он может обрабатывать, и сред рабочего стола, которые он поддерживает.
Список бэкендов и интерфейсов
В этой таблице перечислены все доступные бэкенды и информация о поддержке ими некоторых часто используемых интерфейсов.
Бэкенд
Поддерживаемые среды
Тулкит
Access portal
Account portal
App chooser portal
Background portal
Clipboard portal
Dynamic launcher portal
Email portal
File chooser portal
Global shortcuts portal
Inhibit portal
Input capture portal
Notification portal
Print portal
Remote desktop portal
Screen cast portal
Screenshot portal
Secret portal
Settings portal
Wallpaper portal
xdg-desktop-portal-cosmic
COSMIC
iced
Да
Нет
Нет
Нет
Нет
Нет
Нет
Да
Нет
Нет
Нет
Нет
Нет
Нет
Да
Да
Нет
Да
Нет
xdg-desktop-portal-dde
Deepin
Qt
5
Да
Да
Да
Да
Нет
Нет
Нет
Да
Да
Да
Нет
Да
Нет
Нет
Нет
Да
Да
Да
Да
xdg-desktop-portal-gnome
GNOME
GTK
4
Да
Да
Да
Да
Да
Да
Нет
Yes
Нет
Нет
Да
Да
Да
Да
Да
Да
Нет
Да
Да
xdg-desktop-portal-gtk
generic
GTK
3
Да
Да
Да
Нет
Нет
Да
Да
Да
Нет
Да
Нет
Да
Да
Нет
Нет
Нет
Нет
Да
Нет
xdg-desktop-portal-hyprland
Hyprland
1
Qt
6
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Да
Нет
Да
Нет
Нет
Нет
Да
Да
Нет
Нет
Нет
xdg-desktop-portal-kde
KDE Plasma
Qt
6
Да
Да
Да
Да
Нет
Да
Да
Да
Да
Да
Да
Да
Да
Да
Да
Да
Нет
Да
Нет
xdg-desktop-portal-liri-git
AUR
Liri
Qt
5
Да
Да
Да
Да
Нет
Нет
Да
Да
Нет
Да
Нет
Да
Да
Нет
Да
Да
Нет
Да
Да
xdg-desktop-portal-lxqt
LXQt
Qt
6
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Да
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
xdg-desktop-portal-td
AUR
theDesk
Qt
6
Да
Да
Нет
Нет
Нет
Нет
Нет
Да
Нет
Нет
Нет
Да
Нет
Нет
Нет
Да
Нет
Да
Нет
xdg-desktop-portal-wlr
wlroots
–
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Да
Да
Нет
Нет
Нет
xdg-desktop-portal-xapp
Cinnamon
2
–
Нет
Нет
Нет
Да
Нет
Нет
Нет
Нет
Нет
Да
Нет
Нет
Нет
Нет
Нет
Да
Нет
Да
Да
Работает в любых композиторах, основанных на wlroots, но при использовании в
Hyprland
предоставляет дополнительные возможности вроде захвата отдельных окон.
Также частично поддерживает
MATE
и
Xfce
.
Пакеты, которые предоставляют только определённый интерфейс и не зависят от среды рабочего стола:
darkman
реализует Settings portal (только для настройки цветовой схемы).
gnome-keyring
реализует Secret portal.
kwallet
реализует Secret portal.
xdg-desktop-portal-shana
AUR
реализаует File chooser portal, перенаправляя запросы в бэкенды GNOME/GTK/KDE/LXQt.
xdg-desktop-portal-termfilechooser-git
AUR
реализует File chooser portal, позволяет использовать
консольный файловый менеджер
для выбора файла.
Настройка
При получении запроса
xdg-desktop-portal
будет использовать файл
/usr/share/xdg-desktop-portal/
DE
-portals.conf
, где
DE
основано на
переменной окружения
XDG_CURRENT_DESKTOP
. Эти файлы предоставляются самими средами рабочего стола и определяют, какие бэкенды должны использоваться при работе конкретной среды.
Если вы хотите переопределить стандартные настройки или ваша среда рабочего стола их не предоставляет, вы можете создать файл настроек
$XDG_CONFIG_HOME/xdg-desktop-portal/portals.conf
и в нём указать, какие бэкенды вы хотите использовать, либо в целом, либо для каждого отдельного интерфейса. Если вы используете несколько сред рабочего стола, вы также можете создать несколько файлов
$XDG_CONFIG_HOME/xdg-desktop-portal/
DE
-portals.conf
для каждой среды.
Например, если ваша среда рабочего стола не предоставляет бэкенд и вы хотите использовать
xdg-desktop-portal-gtk
по умолчанию, но при этом использовать диалог выбора файла из LXQt через бэкенд
xdg-desktop-portal-lxqt
, вы можете использовать следующую конфигурацию:
~/.config/xdg-desktop-portal/portals.conf
[preferred]
default=gtk
org.freedesktop.impl.portal.FileChooser=lxqt
Смотрите
portals.conf(5)
для более подробной информации.
Указание среды рабочего стола
В некоторых случаях, например, при использовании автономного
оконного менеджера
, вы можете захотеть заставить
xdg-desktop-portal
думать, что вы используете определённую среду рабочего стола. Этого можно добиться, указав переменную окружения
XDG_CURRENT_DESKTOP
для
пользовательского юнита
xdg-desktop-portal.service
. Например, чтобы использовать бэкенды из KDE, создайте такой
drop-in файл
:
~/.config/systemd/user/xdg-desktop-portal.service.d/override.conf
[Service]
Environment="XDG_CURRENT_DESKTOP=KDE"
Решение проблем
Портал не запускается
Чтобы
xdg-desktop-portal-wlr
и
xdg-desktop-portal-hyprland
работали, в
пользовательском экземпляре systemd
должны быть установлены переменные окружения
XDG_CURRENT_DESKTOP
и
WAYLAND_DISPLAY
.
Переменная
XDG_CURRENT_DESKTOP
должна содержать имя вашего композитора, например
XDG_CURRENT_DESKTOP=sway
. Переменная
WAYLAND_DISPLAY
устанавливается композитором автоматически.
Проверьте, установлены ли эти переменные, командой
systemctl --user show-environment
. Если нет, импортируйте их в systemd и dbus, выполнив следующие команды перед запуском композитора (например, добавьте их в файл настроек композитора):
$ systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
$ dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=
имя_композитора
Примечание
Эти переменные должны быть установлены перед запуском композитора. Обычно это можно сделать через его файл настроек.
Совет
Sway
предоставляет drop-in файл, который выполняет это автоматически; смотрите раздел
Sway#Configuration
.
Hyprland
может не устанавливать эти переменные автоматически. Можно установить их вручную, как описано в
Hyprland Wiki
.
Смотрите
[1]
и
[2]
для более подробной информации.
Использование нескольких мониторов с xdg-desktop-portal-wlr
Для
xdg-desktop-portal-wlr
требуется внешний инструмент выбора монитора, который нужно захватить. По умолчанию он пробует использовать
slurp
,
wofi
и
bemenu
в этом порядке. При использовании
slurp
в момент запроса совместного доступа к экрану появится курсор с перекрестием, и вам нужно будет щёлкнуть тот экран, к которому вы хотите предоставить доступ. При использовании
wofi
или
bemenu
будет показано меню с доступными мониторами. Если ни один из инструментов выбора не доступен,
xdg-desktop-portal-wlr
будет захватывать первый найденнй монитор, смотрите
xdg-desktop-portal-wlr(5) § SCREENCAST OPTIONS
.
Некрасивые шрифты у приложений GTK, запущенных в KDE Plasma
Некоторым приложениям GTK нужен
xdg-desktop-portal-gtk
для корректной отрисовки шрифтов в Plasma. Установите его и затем выполните:
$ /usr/lib/xdg-desktop-portal --replace
Не работает выбор файла в приложениях X11
Если приложение работает на X через
Xwayland
(самый простой способ проверить — запустить
xeyes
и посмотреть, следит ли он за курсором мыши, находящимся над интересующим приложением), то диалог выбора файла
xdg-desktop-portal-gtk
будет отображаться, но после выбора файла ничего не произойдет. В этом случае может помочь добавление
DISPLAY=:0
в окружение
xdg-desktop-portal-gtk
. Для этого вы можете либо следовать приведённым выше инструкциям про
import-environment
, либо просто отредактировать пользовательский юнит
xdg-desktop-portal-gtk
. В качестве альтернативы вы можете принудительно запустить приложение под
Wayland
(например, если оно использует
Electron
).
Смотрите также
Сайт проекта
Документация для разработчиков