答案1
您希望应用程序使用 KDE 文件选择对话框,以便可以获得与 Dolphin 相匹配的外观。
正如您所见,原生应用程序(例如 Spectacle)符合要求,但其他应用程序不符合。这可能是因为不符合要求的应用程序基于 gtk 并使用 GTK 文件选择对话框:
Firefox 默认使用 gtk 文件选择对话框
要让 Firefox(一个 gtk 应用程序)使用 KDE 文件选择对话框,请从终端启动它,如下所示:
GTK_USE_PORTAL=1 firefox
现在你会看到
类似地,你可以编辑和其他 gtk 应用程序,使用 KDE 文件选择对话框。
以下是您将看到的内容GTK_USE_PORTAL=1 gedit
:
如果你确定要始终使用 KDE 文件选择对话框,则可以export GTK_USE_PORTAL=1
在末尾添加〜/ .profile. 退出并重新登录后,所有应用程序都将使用 KDE 文件选择对话框。
请注意,您的系统中应该存在以下两个包:
- xdg-桌面门户-kde
- xdg-桌面门户
答案2
问题
大多数基于 GTK 的应用程序(例如 Firefox)将默认打开 GTK 文件选择器(“Nautilus”),与当前桌面环境无关。
(临时)解决方案
但是大多数 GTK 应用程序都支持使用 xdg 桌面门户。作为先决条件,请确保您已安装软件包xdg-desktop-portal
并xdg-desktop-portal-kde
保持最新状态。要检查 GTK 应用程序是否支持桌面门户,请从GTK_USE_PORTAL=1
设置环境变量的控制台启动它。例如,要启动 Firefox 并测试文件选择器,请GTK_USE_PORTAL=1 firefox
从命令行运行。如果应用程序以这种方式启动时仍然使用 Nautilus,则它使用不支持环境变量或桌面门户的 GTK 版本。在这种情况下,你什么也做不了,只能希望这个程序是开源的,你可以自己修复它。另一种选择,但它很不安全,我不推荐它
永久解决方案
要使所有应用程序在启动时都设置环境变量,请创建一个 KDE 会话环境变量(请参阅KDE 用户库维基以供参考):
- 确保已安装
xdg-desktop-portal
并xdg-desktop-portal-kde
- 确保路径
$HOME/.config/plasma-workspace/env
存在
$ mkdir -p $HOME/.config/plasma-workspace/env
- 在目录中创建一个新
.sh
文件,任意名称和内容,export GTK_USE_PORTAL=1
KDE 将.sh
在启动时执行在该目录中找到的任何脚本并维护其中设置的环境变量。
$ echo "export GTK_USE_PORTAL=1" >> $HOME/.config/plasma-workspace/env/gtk_use_portal.sh
- 重新启动/注销并再次登录
请注意,只有在您使用 KDE 会话时此功能才会起作用。如果您切换到 Gnome 会话,环境变量显然不会被 KDE 设置,并且所有应用程序都将恢复为其默认值。
为什么不.profile
?
我在网上找到的大多数解决方案都建议在文件中设置永久环境变量.profile
。虽然这适用于 Flatpak 应用程序,但似乎不适用于本机应用程序(截至今天)。将其设置为 KDE 会话环境变量也适用于大多数本机应用程序(如果它们支持)。
答案3
安装帮助了我(来自 pacman-manager),
xdg-desktop-portal-gtk
这篇文章
https://bugzilla.mozilla.org/show_bug.cgi?id=1639575#c17
在此处输入图片描述