Настройка порталов xdg-portals

В линуксе реализована система XDG порталов. XDG порталы позволяют выглядеть одинаковым образом в разных приложениях диалоговые окна сохранения и открытия файлов. Ниже приведена инструкция настройки XDG порталов в lxqt.

В новых версиях LXQt есть пакет xdg-desktop-portal-lxqt. Поставить его можно командой

apt-get install xdg-desktop-portal-lxqt

Но в убунту 22.04 его нет. Из-за этого порталы не работают. Чтобы заработали нужно сделать:

1) Установить порталы

apt-get install xdg-desktop-portal xdg-desktop-portal-gtk xdg-desktop-portal-kde

2) В файле .bashrc прописать

GTK_USE_PORTAL=1
export GTK_USE_PORTAL

Установить env для flatpak

flatpak override --user --env GTK_USE_PORTAL=1

3) скопировать kde портал

cp /usr/share/xdg-desktop-portal/portals/kde.portal /usr/share/xdg-desktop-portal/portals/lxqt.portal

и поменять в файле /usr/share/xdg-desktop-portal/portals/lxqt.portal последнюю строку

UseIn=LXQt

4) Создайть файл

nano /etc/xdg/autostart/lxqt-portals.desktop

с содержимым

[Desktop Entry]
Comment=XDG Portals
Exec=/usr/libexec/xdg-desktop-portal --replace
GenericName=XDG Portals
Name=XDG Portals
OnlyShowIn=LXQt;
Type=Application

5) В настройках openbox ./config/openbox/rc.xml добавить

<application class="xdg-desktop-portal-kde">
  <size>
    <width>1000</width>
    <height>600</height>
  </size>
  <position force="yes">
    <x>center</x>
    <y>center</y>
    <monitor>mouse</monitor>
  </position>
</application>

и перезагрузиться

Насколько я понял, за порталы отвечает программа xdg-desktop-portal/. Она позволяет перезагрузить порталы, и использовать портал, который указан в файле lxqt-portals.desktop

Строчка UseIn=LXQt означает, что данный портал будет использоваться в LXQt. Какая среда сейчас запущена определяется по переменной XDG_CURRENT_DESKTOP

Подробнее

  1. https://wiki.archlinux.org/title/XDG_Desktop_Portal
  2. https://github.com/lxqt/xdg-desktop-portal-lxqt