在 Linux 上从 Firefox 运行正确的文件管理器的简洁方法

在 Linux 上从 Firefox 运行正确的文件管理器的简洁方法

正如许多人所知,目前的解决方案defaults.confmimetypes.cache不起作用。

Firefox 目前使用 D-bus 来激活服务org.freedesktop.FileManager1来处理“打开包含文件夹”操作等。

如果安装了许多服务文件(例如 nemo 和 dolphin)并且没有运行守护程序(dolphin --daemon/usr/bin/nemo --no-default-window),则没有干净的方法来选择首选文件管理器。

在我的系统上看起来像选择的第一个服务文件按字母顺序排序。因此,在 KDE 系统上 Firefox 通过 Nemo 处理文件夹。

我目前至少看到两种解决方案,两者似乎都是黑客:

  1. 制作一个符号链接:

    ln -s /usr/share/dbus-1/services/org.kde.dolphin.FileManager1.service /usr/share/dbus-1/services/00_preferred_org.freedesktop.FileManager1.service
    

    (不要忘记终止当前正在运行的文件管理器守护进程或重新登录会话)

  2. 早期预运行需要org.freedesktop.FileManager1处理程序。就像dolphin --daemon在适当的条件下一样~/.profile

有没有更干净的方法?

PS尝试在没有Firefox的情况下执行文件管理器:

dbus-send --session \
          --print-reply \
          --dest=org.freedesktop.FileManager1 \
          /org/freedesktop/FileManager1 \
          org.freedesktop.FileManager1.ShowFolders \
              array:string:"file:/" string:""

答案1

存在一种更清洁的方法,它与您的第一个解决方案类似。您可以在~/.local/share/dbus-1/services/.

根据dbus文档,dbus 将查找$XDG_DATA_HOME/dbus-1/services(以及其他)任何服务文件并加载它们。尽管文档没有指定搜索文件夹的顺序,但我只是在我的计算机上尝试了这一点,它可以找到我想要使用的文件管理器服务。


就我而言,我想使用nautilusxfce 而不是 thunar 作为默认文件管理器,因此我使用以下命令使其工作:

ln -s /usr/share/dbus-1/services/org.freedesktop.FileManager1.service ~/.local/share/dbus-1/services/org.freedesktop.FileManager1.service

其他来源:

https://polywogsys.livejournal.com/309405.html

答案2

原来/usr/share/dbus-1/services/org.kde.dolphin.FileManager1.service包含类似的东西

[D-BUS Service]
Name=org.freedesktop.FileManager1
Exec=/usr/bin/dolphin --daemon
SystemdService=plasma-dolphin.service

我把它替换为

[D-BUS Service]
Name=org.freedesktop.FileManager1
Exec=QT_QPA_PLATFORMTHEME=qt5ct QT_STYLE_OVERRIDE=kvantum /usr/bin/dolphin --daemon

它就像一个魅力。

不过,直接编辑 /usr 中的文件并不是最好的方法,我想我应该从 ~/.local 覆盖它

相关内容