我想在 XFCE 中使用 Nautilus 作为默认值而不是 Thunar,但如何删除完整的 Thunar?我已经输入了
sudo apt-get remove thunar gvfs-backends
但我仍然遇到问题,因为如果我单击桌面上的文件夹,Thunar 就会启动。有人能帮我吗?
谢谢。
答案1
尝试
exo-preferred-applications
从终端运行(Ctrl++ Alt)t。您应该在名为“实用程序”的第二个选项卡上看到一个用于更改文件管理器的选项。将文件管理器选项更改为“Nautilus”。
使用
xdg-mime
,您还可以运行以下命令来确定当前的默认文件管理器:xdg-mime query default inode/directory
就您而言,结果应该返回
thunar.desktop
。为了改变这个,运行:
xdg-mime default nautilus.desktop inode/directory application
- 您可以编辑该文件
~/.local/share/applications/mimeapps.list
- 查找包含的行
inode/directory=thunar.desktop;
- 将其更改为读取
inode/directory=nautilus.desktop;
- 查找包含的行
答案2
默认情况下在 xfce 中启动的原因Thunar
是因为 xfce 开箱即用时已经与 Thunar 作为默认文件管理器达成一致。这种依赖关系不是用 mimetype 编写的,而是作为 dbus 服务编写的。
您可以通过在新终端中启动此命令来自行测试:
dbus-monitor --session interface=org.freedesktop.FileManager1
在新终端中,使用以下命令打开文件(替换/home/user/folder/or/file.ext
为实际文件或文件夹路径):
dbus-send --session --print-reply --dest=org.freedesktop.FileManager1 --type=method_call /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItems array:string:"file:///home/user/folder/or/file.ext" string:""
在第一个终端中,您将看到请求由 dbus 和 Thunar 处理可能打开。
一些简报
Linux 没有真正的“默认”文件管理器概念 - 不,那是 Windows 工件 - 或 mimetypes 的“默认”处理程序。这实际上与您的系统配置方式有关。它只是选择最近的可用的东西并不断地嘎嘎作响......
Mimetypes 很棒,大约 90% 的时间都可以工作,但许多现代应用程序开始转向使用 dbus,并且只有在 dbus 无法找到合适的文件管理器时才会回退到基于 mimetype 的过滤。
更具体地说,存在一个总线接口任何支持org.freedesktop.FileManager1
dbus 的应用程序都可以实现和注册。现在,每当使用 dbus 的应用程序想要打开文件时,它们只需向 dbus 发送一条消息,以调用实现该接口的服务上的方法。 dbus 服务将完全绕过您设置的任何 mimetypes,而是调用第一的它发现实现的服务org.freedesktop.FileManager1
。
解决方案
对于我们许多人来说,简单地卸载可能是不可能的Thunar
,因此我提出两种方法来处理这种烦恼:
- 第一种方法是简单地告诉 dbus 阻止所有使用
org.freedesktop.FileManager1
.您的应用程序现在将被迫使用 mimetypes。方法是创建一个名为 的文件/etc/dbus-1/session-local.conf
,其内容为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy context="default">
<!-- Block all usage of org.freedesktop.FileManager1 for opening files -->
<deny send_interface="org.freedesktop.FileManager1" send_destination="org.freedesktop.FileManager1"/>
</policy>
</busconfig>
现在重新加载 dbus:
dbus-send --session --print-reply --dest=org.freedesktop.DBus --type=method_call /org/freedesktop/DBus org.freedesktop.DBus.ReloadConfig
重新加载 dbus 后,每个应用程序现在将被迫使用 mimetypes 或无法打开特定文件。
- 第二种选择就不那么引人注目了。
org.freedesktop.FileManager1
您可能会发现您的首选文件管理器已经实现了该org.freedesktop.FileManager1
接口,并且您希望强制 xfce 使用该接口,而不是阻止所有调用。
/usr/share/dbus-1/services
您可以通过创建从该服务(在)到 的符号链接来完成此操作$XDG_DATA_HOME/dbus-1/services/org.freedesktop.FileManager1
。 (XDG_DATA_HOME
通常默认为~/.local/share
)
事实上 Nautilus 实现了这个接口。看我的回答这里。
现在,将使用您最喜欢的文件管理器,而不是 xfce 中的默认文件管理器。
希望有帮助。快乐配置!
参考
答案3
尝试看看将默认文件管理器变成 Nautilus 的类似问题:
https://askubuntu.com/questions/47208/how-to-stop-thunar-being-default-file-browser
您应该能够通过运行以下命令来完全删除 Thunar:
sudo apt-get purge thunar*