Gentoo xdg-desktop-portal

xdg-desktop-portal 是 xdg-desktop-portal 接口的前端实现,在Gentoo中,可用的后端包括:

  • sys-apps/xdg-desktop-portal-gnome

  • sys-apps/xdg-desktop-portal-gtk

  • kde-plasma/xdg-desktop-portal-kde

  • gui-libs/xdg-desktop-portal-lxqt

  • gui-libs/xdg-desktop-portal-wlr wayland显示服务器协议wlroots 后端xdg-desktop-portal

安装

  • 安装 xdg-desktop-portal :

安装 xdg-desktop-portal
emerge --ask sys-apps/xdg-desktop-portal

注意,还需要配置安装至少一个针对环境的后端实现 例如 wayland显示服务器协议 对应的 gui-libs/xdg-desktop-portal-wlr :

安装面向 wayland显示服务器协议xdg-desktop-portal-wlr
emerge --ask gui-libs/xdg-desktop-portal-wlr

此外, sway-portals.conf 配置 使用 xdg-desktop-portal-gtk 提供每个portal接口,所以还需要安装 sys-apps/xdg-desktop-portal-gtk :

xdg-desktop-portal-wlr 默认使用 xdg-desktop-portal-gtk 提供portal接口,所以同时安装 sys-apps/xdg-desktop-portal-gtk
emerge --ask sys-apps/xdg-desktop-portal-gtk

备注

我检查了我的安装 xdg-desktop-portal + xdg-desktop-portal-wlr

/usr/share/xdg-desktop-portal/sway-portals.conf 配置如下:

/usr/share/xdg-desktop-portal/sway-portals.conf
[preferred]
# Use xdg-desktop-portal-gtk for every portal interface...
default=gtk
# ... except for the ScreenCast and Screenshot
org.freedesktop.impl.portal.ScreenCast=wlr
org.freedesktop.impl.portal.Screenshot=wlr
# 下面这行是我参考 https://wiki.gentoo.org/wiki/Xdg-desktop-portal#Configuration
# 因为fcitx5启动时检查 org.freedesktop.portal.Settings ,不过加了也没用,貌似检查的是其他节点
org.freedesktop.impl.portal.Settings=darkman

可以看到 wlr 默认设置 gtk 提供接口,所以,还应该同时安装 sys-apps/xdg-desktop-portal-gtk

配置

备注

这段没有实践

xdg-desktop-portal 通过一个或多个配置文件配置:

  • $XDG_CONFIG_HOME/xdg-desktop-portal/{*-}portals.conf

  • $XDG_CONFIG_DIRS/xdg-desktop-portal/{*-}portals.conf

  • /etc/xdg-desktop-portal/{*-}portals.conf

  • $XDG_DATA_HOME/xdg-desktop-portal/{*-}portals.conf

  • $XDG_DATA_DIRS/xdg-desktop-portal/{*-}portals.conf

  • /usr/share/xdg-desktop-portal/{*-}portals.conf

如果上述配置文件都不存在,则可以创建一个简单的 ~/.config/portals.conf

简单的 ~/.config/portals.conf
[preferred]
# Use xdg-desktop-portal-gtk for every portal interface...
default=gtk
# ... except for the Screencast, Screenshot and Settings (dark/light mode) interface
org.freedesktop.impl.portal.Screencast=wlr
org.freedesktop.impl.portal.Screenshot=wlr
org.freedesktop.impl.portal.Settings=darkman

使用

xdg-desktop-portal 通常不需要手工执行,而是由程序调用。不过如果要调试配置可以尝试添加 -v 参数:

手工执行 xdg-desktop-portal 调试
/usr/libexec/xdg-desktop-portal -v

参考