如何切换到不同的 xdg-desktop-portal?

如何切换到不同的 xdg-desktop-portal?

在我的机器上,有多个 xdg-desktop-portal

$ ls -la /usr/share/xdg-desktop-portal/portals
.rw-r--r-- 100 root 23 Mar 14:48 gnome-keyring.portal
.rw-r--r--  99 root 20 Mar 02:25 gnome-shell.portal
.rw-r--r-- 548 root 18 Oct  2022 gnome.portal
.rw-r--r-- 495 root 29 Nov  2022 gtk.portal

切换到不同 xdg-desktop-portal 的命令是什么?

答案1

xdg-desktop-portal是一个允许应用程序与桌面环境进行通信的接口,它不是可以使用环境变量在不同实现之间切换的东西。

XDG 桌面门户(后来称为 XDP)是一个程序,可让其他应用程序通过 D-Bus 与合成器快速通信。它用于诸如打开文件选择器、屏幕共享之类的事情。

您在目录中看到的不同门户实现/usr/share/xdg-desktop-portal/portals是不同桌面环境提供的不同门户后端。每个门户后端充当应用程序和相应桌面环境之间的桥梁。

要使用特定的xdg-desktop-portal实现,您通常需要使用提供该实现的桌面环境。您当前使用的桌面环境决定了使用哪个门户后端。

如果您的计算机上安装了多个桌面环境,您可以通过注销并在登录屏幕上选择不同的桌面环境来在它们之间进行切换。每个桌面环境都有自己的默认xdg-desktop-portal实现。

答案2

虽然接受的答案是正确的,但它没有提供关于选择一个后端与另一个后端或允许某人进行低级控制的较低级别机制的答案。这里有两个选择。

首先,至少对于我的系统,后端是通过~/.config/system/user/xdg-desktop-portal.service.d/override.conf以下几行选择备用后端的:

[Service]
Environment="XDG_CURRENT_DESKTOP=xapp"

正如OP所确定的,XDG_CURRENT_DESKTOP的可能值可以.portal作为/usr/share/xdg-desktop-portal/portals.

然而,这并不是唯一的方法。 门户.conf(5)可用于使用手册页中显示的语法/示例来选择备用后端(甚至可能是每个应用程序的后端)。它通常位于,$HOME/.config/portals.conf但还有许多其他选择。

相关内容