16
octobre
2024
12:03

Pourquoi avez-vous besoin d'un paquet de XDG-DESKTOP-PORTAL, comment l'utiliser

16 octobre 2024 12:03

Linux possède plusieurs supports logiciels sur la base des services Linux Systemd et D -BU, Flatpak et SNAP troisième partie.

Probablement, tout le monde sait que les systèmes de distribution FlatPak et Snap Applications utilisent le mécanisme de bac à sable, le cas échéant, les applications sont lancées dans un environnement sûr.

Pour que les programmes lancés dans les «bacs à sable» peuvent avoir accès à des ressources informatiques, telles que le système de fichiers, la caméra, le serveur sonore - un composant «Basée» (backend) entre SNAP / FlatPak et le système d'exploitation est utilisé. Ce composant est appelé "Portail de bureau XDG". Depuis Documentation Flatpak:

"Les portails sont des cadres pour un accès sûr aux ressources en raison des limites d'un environnement logiciel isolé. Ils fournissent aux applications un certain nombre de fonctions générales, notamment: déterminer l'état du réseau, ouvrant le fichier à l'aide de l'outil de sélection de fichiers, l'ouverture de l'URI, créant des images d'écran et effectuant les émissions d'écran [...]"

Les portails ont été développés pour une utilisation avec des applications isolées via FlatPak, mais toute application peut utiliser des portails pour fournir un accès unique à des fonctions indépendantes du bureau et des outils. Ceci est généralement utilisé, par exemple, pour résoudre l'accès global à l'écran de Wayland via Pipewire ou pour utiliser les fichiers d'ouverture et d'enregistrement dans Firefox, qui utilisent le même ensemble d'outils que votre environnement de bureau actuel. "

Quand avez-vous besoin d'un composant de XDG-DESKTOP-PORTAL?

  • Il est nécessaire lors de l'utilisation de Flatpak et Snap

Comment installer XDG-DESKTOP-PORTAL?

sudo apt update
sudo apt install xdg-desktop-portal xdg-desktop-portal-gtk

Comment lancer le service XDG-Desktop-Portal.Service?

Ce service est lancé automatiquement, entouré de l'utilisateur lors de la contact avec les interfaces interagissant avec le système d'exploitation. Si vous le souhaitez, il peut être lancé manuellement pour vérifier les travaux (condition, état, erreur), mais entouré uniquement de l'utilisateur actuel. Équipe:

systemctl --user start xdg-desktop-portal.service

Vérification de l'état de service:

systemctl --user status xdg-desktop-portal.service

L'état du service xdg-desktop-portal.service doit être vert : « actif (en cours d'exécution) ». Les avertissements de type « Échec du chargement de la propriété RealtimeKit : GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown : Le nom org.freedesktop.RealtimeKit1 n'a été fourni par aucun fichier .service » et « Aucun squelette à exporter » n'affectent pas le fonctionnement du service xdg-desktop-portal.service ; ces messages doivent être ignorés.

Quel est le principe d'opération XDG-DESKTOP-PORTAL.SERVICE?

Le composant interagit avec le système et FlatPak / Snap à l'aide du protocole DBUS.

Comment supprimer xdg-desktop-portal.service?

Si l'interaction avec le système d'exploitation des packages Snap, Flatpak n'est pas requis. Vous pouvez supprimer ces packages

sudo apt purge xdg-desktop-portal xdg-desktop-portal-gtk

  • XDG-DESKTOP-PORTAL - Le paquet principal
  • XDG-DESKTOP-PORTAL-GTK - Un ensemble d'extensions par défaut pour la plupart des fonctions du système d'exploitation (lancement d'applications, sélection de fichiers, impression, paramètres du système d'exploitation, raccourcis clavier GNOME, etc.).

Dans la documentation sur wiki.archlinux.org/title/xdg_desktop_portal сказано, что для каждого окружения рабочего стола есть свои пакеты. Например:

  • Environnement Gnome-> Package XDG-DESKTOP-PORTAL
  • Environnement KDE-> Paquet XDG-DESKTOP-PORTAL-KDE
  • LXQT-> ENTRICE Package XDG-DESKTOP-PORTAL-LXQT

Comment assurer le travail de xdg-desktop-portal.service?

La composante XDG-DESKTOP-Portal a besoin de variables

  • XDG_RUNTIME_DIR
  • XDG_CONFIG_HOME
  • XDG_DATA_DIRS
  • et al. Voir.Description XDG.

Vérifiez l'entourage actuel du bureau et d'autres variables du XDG:

env | grep XDG

Les fichiers de configuration XDG-DESKTOP-Portal sont dans le dossier /usr/share/xdg-desktop-portal/. Ils ne devraient pas être modifiés.

De plus, le composant a besoin des noms des dossiers répertoriés dans le fichier:
~/.config/user-dirs.dirs

Exemple - Affichage de la liste des dossiers de l'utilisateur:

cat ~/.config/user-dirs.dirs

Résultat:
# Ce fichier est écrit par xdg-user-dirs-update
\ # Si vous souhaitez modifier ou ajouter des réalisateurs, modifiez simplement la ligne, vous êtes
\ # entré-coté. Toutes les modifications locales seront conservées lors de la prochaine exécution.
\ # Format est xdg_xxx_dir = "$ home / yyy", ce que Yyy est un arbitré
\ # Chemin à homedir-relalatif, ou xdg_xxx_dir = "/ yyy", quoi / yyy
\ # Chemin absolu. Aucun autre format n'est pris en charge.
\ #
XDG_DESKTOP_DIR = "$home/desktop"
XDG_DOWNLOAD_DIR = "$home/loading"
XDG_TEMPLATES_DIR = "$home/templates"
XDG_PULICHIRARE_DIR = "$home/public"
XDG_DOCUMENTS_DIR = "$home/documents"
XDG_MUSIC_DIR = "$home/music"
XDG_PICTURES_DIR = "$home/images"
XDG_VIDEOS_DIR = "$home/video"

Ce fichier est créé lors de l'exécution d'une commande

xdg-user-dirs-update

Les dossiers d'utilisateurs du système d'exploitation sont appelés en tenant compte des paramètres de langue régionaux actuels dans le profil utilisateur. La localisation des paramètres du langage détermine également les variables de l'environnement qui peuvent être visualisées à l'aide de la commande locale:

locale

Pour installer sur le russe:

sudo update-locale LANG=ru_RU.UTF-8

Si la langue russe est sélectionnée lors de l'installation du système d'exploitation, la configuration n'est pas requise.

Ajout de 2026 :

Si Flatpak est installé, modifiez votre fichier ~/.bashrc.

Par exemple, avec l’éditeur de texte nano :

nano ~/.bashrc

Ajoutez la ligne suivante à la fin :

export XDG_DATA_DIRS="/usr/local/share/:/usr/share/:/var/lib/flatpak/exports/share:/home/vladimir/.local/share/flatpak/exports/share"

Enregistrez le fichier et quittez nano :

Ctrl+S, Ctrl+X.

Comment assurer le fonctionnement du portail XDG-DESKTOP-Portal s'il ne démarre pas?

Utilisation de l'importation d'une variable système entourée de l'utilisateur:

La plupart du système d'exploitation en a assez:

systemctl --user import-environment XDG_CURRENT_DESKTOP

Dans Wayland:

systemctl --user import-environment WAYLAND_DISPLAY  XDG_CURRENT_DESKTOP

Re -Launch et vérifiez que le portail fonctionne:

systemctl --user start xdg-desktop-portal.service
systemctl --user status xdg-desktop-portal.service

Comment vérifier les travaux du service XDG-desktop-Portal.Service?

1) Vous devez installer l'application Flatpak, installer une autre application dedans, par exemple, le navigateur de chrome tel qu'écrit Dans un article précédent.

2) Tout d'abord, vérifiez que le navigateur est présent dans la liste des applications FlatPak installées.

flatpak list

3) Lancer

flatpak run org.chromium.Chromium

4) Sélectionnez l'élément "Ouvrez le fichier" - en appuyant sur la touche Ctrl + O . Un dialogue système doit apparaître, qui affiche le contenu du dossier de la maison. Cela signifie que le portail fonctionne.

Débogage

dbus-monitor --session

et lancer une application dans une autre fenêtre

flatpak run org.chromium.Chromium

Et en appuyant sur Ctrl + O :

Dans la fenêtre dbus-monitor будет выведено много текста:

String "org.freedesktop.impl.portal.request" Temps d'erreur = 1729069549.930735 Sender =: 1,49 -> Destination =: 1.46 error_name = org.freedesktop.dbus.rror.unknownmethod Reply_Serial = 163 string "Объект по пути «/org/freedesktop/portal/desktop/request/1_88/handle_0» не существует" Time d'appel de la méthode = 1729069549.931375 expéditeur =: 1,46 -> destination =: 1,49 série = 164 path = / org / freedesktop / portal / Desktop; interface = org.freedesktop.impl.portal.filechooser; Membre = OpenFile object path "/org/freedesktop/portal/desktop/request/1_88/handle_0" string "org.chromium.Chromium" string "x11:0x3a00019" string "Открытие файла" array [ dict entry( string "modal" variant boolean true ) dict entry( string "filters" variant array [ ] ) ] ### Lancement de la visualisation de l'URL ou du document à l'aide de XDG-Open Au lieu de lancer une application et d'ouvrir un document à partir de celui-ci, vous pouvez utiliser une commande simple `xdg-open` "имя файла" или URL. Par exemple: xdg-open https://bfm.ru ou xdg-open 388643rus.pdf Fichier PDF pour les tests - "Message du PDG de l'UNESCO *[Odre Azule](https://www.unesco.org/ru/director-general) по случаю Всемирного дня радио 13 февраля 2024 года": [388643rus.pdf](388643rus.pdf) * UNESCO - Nations Unies pour l'éducation, les sciences et la culture. ! L'utilitaire XDG-Open est inclus dans le package XDG-UTILS, installé dans Linux par défaut. Les processus lancés par son travail dans le conteneur Flatpak. Il y a aussi un package `flatpak-xdg-utils`, в котором есть особая версия xdg-open, и приложение flatpak-spawn, которое позволяет действия в системе _за пределами_ контейнера. Эта специальная версия `xdg-open` устанавливается по другому пути: `/usr/libexec/flatpak-xdg-utils/` вместо `/usr/bin/xdg-open`. Установка пакета `flatpak-xdg-utils`, en règle générale, non requis. !!! Pour gérer les droits (permis) des applications de conteneurs Flatpak, il existe une application graphique FlatSeal (com.github.tchx84.flatseal). sudo flatpak install com.github.tchx84.Flatseal flatpak run com.github.tchx84.Flatseal ** FlatSeal ** vous permet de limiter les permis d'application, comme les paramètres Android "Applications et notifications" - "Autorisation des applications": Par exemple, Résolutions _DL Browser Chromium de Flatpak: _ * Réseau - Oui * Communications d'interprovisation - Oui * Système de fenêtre x11 - Oui. * Sound Server PulseAudio - Oui * Système d'impression - Oui * Accélération du GPU (Device = Dri) - Par défaut -> peut être changé en OUI * Tous les appareils (webcam) - Oui * Tous les fichiers utilisateur (Filesystem = Home) - Oui * Contexte (peut fonctionner en arrière-plan) - Non * Notifications (peut envoyer des notifications) - Non ---- ** Liens vers la documentation: ** *[Intégration de bureau Flatpak](https://docs.flatpak.org/en/latest/desktop-integration.html) *[Portail de bureau XDG](https://flatpak.github.io/xdg-desktop-portal/) *[Flatpak-xdg-utils](https://packages.debian.org/ru/sid/flatpak-xdg-utils)

Publications connexes