如何在 XFCE 中預設使用 Nautilus?
我想在 XFCE 中預設使用 Nautilus 而不是 Thunar,但是如何刪除完整的 Thunar?我已經輸入
sudo apt-get remove thunar gvfs-backends
但是我仍然有問題,因為如果我點擊桌面中的文件夾 Thunar 就會啟動。有人能幫我嗎?
謝謝你。
- 嘗試
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
- 你可以編輯文件
~/.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
,所以我提出了兩種處理這種煩惱的方法:
- 第一種方法是簡單地告訴 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 使用它,而不是阻止所有呼叫。您可以通過創建從該服務 (in
/usr/share/dbus-1/services
) 到$XDG_DATA_HOME/dbus-1/services/org.freedesktop.FileManager1
. (XDG_DATA_HOME
通常預設為~/.local/share
)事實上,Nautilus 實現了這個介面。在這裡查看我的答案。
現在,將使用您最喜歡的文件管理器,而不是 xfce 中的預設文件管理器。
希望有幫助。快樂配置!
參考