正如许多人所知,目前的解决方案defaults.conf
和mimetypes.cache
不起作用。
Firefox 目前使用 D-bus 来激活服务org.freedesktop.FileManager1
来处理“打开包含文件夹”操作等。
如果安装了许多服务文件(例如 nemo 和 dolphin)并且没有运行守护程序(dolphin --daemon
或/usr/bin/nemo --no-default-window
),则没有干净的方法来选择首选文件管理器。
在我的系统上看起来像选择的第一个服务文件按字母顺序排序。因此,在 KDE 系统上 Firefox 通过 Nemo 处理文件夹。
我目前至少看到两种解决方案,两者似乎都是黑客:
制作一个符号链接:
ln -s /usr/share/dbus-1/services/org.kde.dolphin.FileManager1.service /usr/share/dbus-1/services/00_preferred_org.freedesktop.FileManager1.service
(不要忘记终止当前正在运行的文件管理器守护进程或重新登录会话)
早期预运行需要
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
(以及其他)任何服务文件并加载它们。尽管文档没有指定搜索文件夹的顺序,但我只是在我的计算机上尝试了这一点,它可以找到我想要使用的文件管理器服务。
就我而言,我想使用nautilus
xfce 而不是 thunar 作为默认文件管理器,因此我使用以下命令使其工作:
ln -s /usr/share/dbus-1/services/org.freedesktop.FileManager1.service ~/.local/share/dbus-1/services/org.freedesktop.FileManager1.service
其他来源:
答案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 覆盖它