如何在 XFCE 中使用 Nautilus 作为默认值?

如何在 XFCE 中使用 Nautilus 作为默认值?

我想在 XFCE 中使用 Nautilus 作为默认值而不是 Thunar,但如何删除完整的 Thunar?我已经输入了

sudo apt-get remove thunar gvfs-backends

但我仍然遇到问题,因为如果我单击桌面上的文件夹,Thunar 就会启动。有人能帮我吗?

谢谢。

答案1

  1. 尝试exo-preferred-applications从终端运行(Ctrl++ Altt。您应该在名为“实用程序”的第二个选项卡上看到一个用于更改文件管理器的选项。

    将文件管理器选项更改为“Nautilus”。

  2. 使用xdg-mime,您还可以运行以下命令来确定当前的默认文件管理器:

    • xdg-mime query default inode/directory

    • 就您而言,结果应该返回thunar.desktop

    • 为了改变这个,运行:

    • xdg-mime default nautilus.desktop inode/directory application

  3. 您可以编辑该文件~/.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.FileManager1dbus 的应用程序都可以实现和注册。现在,每当使用 dbus 的应用程序想要打开文件时,它们只需向 dbus 发送一条消息,以调用实现该接口的服务上的方法。 dbus 服务将完全绕过您设置的任何 mimetypes,而是调用第一的它发现实现的服务org.freedesktop.FileManager1

解决方案

对于我们许多人来说,简单地卸载可能是不可能的Thunar,因此我提出两种方法来处理这种烦恼:


  1. 第一种方法是简单地告诉 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 或无法打开特定文件。


  1. 第二种选择就不那么引人注目了。

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*

相关内容