Xfce

如何在 XFCE 中預設使用 Nautilus?

  • October 19, 2020

我想在 XFCE 中預設使用 Nautilus 而不是 Thunar,但是如何刪除完整的 Thunar?我已經輸入

sudo apt-get remove thunar gvfs-backends

但是我仍然有問題,因為如果我點擊桌面中的文件夾 Thunar 就會啟動。有人能幫我嗎?

謝謝你。

  1. 嘗試exo-preferred-applications從終端(Ctrl++ Alt)執行t。您應該會在名為“實用程序”的第二個選項卡上看到更改文件管理器的選項。

將文件管理器選項更改為“Nautilus”。 2. 使用xdg-mime,您還可以執行以下命令來確定您目前的預設文件管理器:

  • xdg-mime query default inode/directory
  • 在您的情況下,這應該thunar.desktop作為結果返回。
  • 為了改變這一點,執行:
  • xdg-mime default nautilus.desktop inode/directory application
  1. 你可以編輯文件~/.local/share/applications/mimeapps.list
  • 查找包含的行inode/directory=thunar.desktop;
  • 將其更改為閱讀inode/directory=nautilus.desktop;

原因Thunar在 xfce 中預設啟動是因為 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 的“預設”處理程序的真正概念。這實際上與您的系統的配置方式有關。

Mimetype 非常棒,大約 90% 的時間都在工作,但是許多現代應用程序開始轉向使用 dbus,並且只有在 dbus 找不到合適的文件管理器時才回退到基於 mimetype 的過濾。

更具體地說,存在一個 dbus 介面org.freedesktop.FileManager1,任何 dbus 服務都可以實現該介面。現在,每當使用 dbus 的應用程序想要打開一個文件時,他們只需通過 dbus 發送一條消息,dbus 將完全繞過您設置的任何 mimetypes,而是呼叫它找到的第一個org.freedesktop.FileManager1名為 name 的服務。

解決方案

事實上,對於我們許多人來說,簡單地解除安裝可能是不可能的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 使用它,而不是阻止所有呼叫。

您可以通過創建從該服務 (in /usr/share/dbus-1/services) 到$XDG_DATA_HOME/dbus-1/services/org.freedesktop.FileManager1. (XDG_DATA_HOME通常預設為~/.local/share

事實上,Nautilus 實現了這個介面。在這裡查看我的答案。

現在,將使用您最喜歡的文件管理器,而不是 xfce 中的預設文件管理器。


希望有幫助。快樂配置!

參考

引用自:https://unix.stackexchange.com/questions/66662