Linux

從網路瀏覽器中執行我想要的文件管理器

  • December 4, 2021

我想在我的瀏覽器中執行Nemo而不是Xfce的預設文件瀏覽器。

在 Linux 上從 Firefox 執行正確文件管理器的Per Clean 方法我嘗試做:

$ mkdir --parents ~/.local/share/dbus-1/services/
$ ln --symbolic /usr/share/dbus-1/services/nemo.FileManager1.service ~/.local/share/dbus-1/services/org.freedesktop.FileManager1.service

為了測試打開哪個文件管理器,我執行了:

$ dbus-send --dest=org.freedesktop.FileManager1 --type=method_call /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItems array:string:"file:///home/" string:""

然後我重新啟動,但沒有任何改變。我什至複製了一些服務文件並更新了它們的Name欄位:

  • /usr/share/dbus-1/services/org.xfce.FileManager.service
  • /usr/share/dbus-1/services/org.xfce.Thunar.FileManager1.service

同樣沒有任何變化,Thunar仍然打開。似乎我的設置完全被忽略了。

關於發生了什麼的任何想法,或者我該如何調試這個問題?

我看了看/usr/share/dbus-1/session.conf,沒有修改。這包含<standard_session_servicedirs />. 對於每個dbus-daemon,這意味著~/.local/share/dbus-1/services/包含並且應該優先於/usr/share/dbus-1/services/.

dbus.service日誌中沒有任何相關內容。

一些Google搜尋並將DBUS FileManager1 更改為 Krusader說:

沒有自動啟動的解決方案。如果您想要針對給定服務的每個桌面覆蓋,請儘早啟動它。因此,您的問題是針對您的桌面系統,尤其是針對您的應用程序:讓它們儘早啟動並聲明 org.freedesktop.FileManager1 服務名稱。不要放棄。

事實上,看看我正在執行的D-Bus服務,已經有一個org.freedesktop.FileManager1.

import dbus

session_bus = dbus.bus.BusConnection('unix:path=/run/user/1000/bus')
for service in session_bus.list_names():
   print(service)

查看我的流程,我/usr/bin/Thunar --gapplication-service正在執行。

這是從/usr/share/dbus-1/services/org.xfce.Thunar.FileManager1.service以下內容開始的:

[D-BUS Service]
Name=org.freedesktop.FileManager1
Exec=/usr/bin/Thunar --gapplication-service
SystemdService=thunar.service

終止此過程後,我的配置~/.local/share/dbus-1/services/org.freedesktop.FileManager1.service正常工作。

仍然沒有辦法根據需要提供標準化的方式來禁用由 dbus 啟動的服務(#70)·問題·dbus / dbus·GitLab禁用D-Bus服務。

所以為了解決這個問題,除了包括~/.local/share/dbus-1/services/org.freedesktop.FileManager1.service,我剛剛殺死Thunar了登錄時的所有程序。現在,當我在網路瀏覽器中打開Nemo時,它就會出現。

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