在Firefox 38.8.0 ESR中,在Debian Lenny和GNOME 2下,我发现通过XDG关联的应用程序(在OP的答案中进行了描述)仅在从“库中的下载”中打开下载的文件时使用。
甚至在那里,xdg-open
由于忽略GNOME特定的路径(在我的情况下/usr/share/gnome/applications/defaults.list
,这是的符号链接/etc/gnome-vfs-2.0/defaults.list
),该实现所提供的结果也不一致。我必须application/pdf=evince.desktop
在我的中指定~/.local/share/applications/defaults.list
。(请注意,它defaults.list
已合并到mimeapps.list
最新版本的XDG中。)
在以下用例中,使用元邮件功能(mailcap)代替XDG 来解析关联的应用程序:
- 从下载面板打开下载的文件(按工具栏中的下载按钮后显示)
- 文件下载对话框下拉菜单中的默认应用程序
- 首选项→应用程序(
about:preferences#applications
)下拉列表中的默认应用程序
about:preferences#applications
导航到具有该内容类型的URL时,将使用首选项in ,除非强制下载。
Mailcap是一种比XDG还要老的机制,它的根源是电子邮件,MIME也来自此。该run-mailcap
实用程序类似于xdg-open
。它的配置包括三个文件(优先级递减):
~/.mailcap
—用户条目
/etc/mailcap.order
—系统范围内的条目订购规范
/etc/mailcap
—系统范围的条目(与用户条目的格式相同)
它们一起产生一个单行条目列表,这些条目指定了用于任何给定MIME类型的应用程序。这些条目是自上而下匹配的,因此先发生的优先。
要在系统范围内更改条目优先级,您需要编辑/etc/mailcap.order
并运行update-mime
。
要覆盖某些条目或在系统范围内指定自己的条目,您需要编辑的顶部(适用于手动创建的条目)/etc/mailcap
并运行update-mime
。请参阅顶部的评论。
对于用户输入和替代,请使用~/.mailcap
。更改将立即生效。不~/.mailcap.order
存在;如果您想更改条目的优先级,请对其进行物理重新排序(如果位于中~/.mailcap
),或者使用首选版本覆盖它们(如果位于中/etc/mailcap
)。
见man update-mime
,man mailcap
和man mailcap.order
。
请注意,某些应用程序使用通用实用程序(例如x-www-browser
或pager
)来代替首选应用程序的检测。您可能需要使用update-alternatives
或类似的机制来选择发行版中通用工具的首选实现。或者,要覆盖特定用户的系统范围内的首选替代方法,请设置环境变量,例如EDITOR
(或VISUAL
)PAGER
和BROWSER
。它们受sensible-browser
其他通常更特定的工具(例如git commit
use EDITOR
和VISUAL
)支持。