从网络浏览器中运行我想要的文件管理器

从网络浏览器中运行我想要的文件管理器

我想跑步尼莫代替Xfce在我的浏览器中的默认文件浏览器。

在 Linux 上从 Firefox 运行正确的文件管理器的简洁方法我尝试这样做:

$ 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

再次没有任何改变,图纳尔仍然打开。看来我的设置完全被忽略了。

对发生的事情有什么想法,或者如何调试这个问题?

答案1

我看了下/usr/share/dbus-1/session.conf,没有修改。这包含<standard_session_servicedirs />.每dbus 守护进程该方式~/.local/share/dbus-1/services/已包含在内,并且应优先于 中的服务/usr/share/dbus-1/services/

dbus.service日志中没有任何相关内容。

一些谷歌搜索和将 DBUS FileManager1 更改为 Krusader说:

自动启动没有解决方案。如果您想要按桌面覆盖给定的服务,请尽早启动它。因此,您的问题是针对您的桌面系统,特别是您的应用程序:让它们尽早启动并声明 org.freedesktop.FileManager1 服务名称。并且不要放弃。

确实,看看我的跑步D总线服务,已经有一个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工作了。

目前还没有办法禁用D总线服务每需要提供标准化方法来禁用 dbus 启动的服务 (#70) · 问题 · dbus / dbus · GitLab

因此,为了解决这个问题,除了 include 之外~/.local/share/dbus-1/services/org.freedesktop.FileManager1.service,我还杀死了Thunar登录时的所有进程。现在尼莫当我在网络浏览器中打开它时出现。

相关内容