上下文:我有一个 Ubuntu/Dolphin 错误行为,它似乎认为*.mkv
文件是用ark
.下面的屏幕截图表示打开Properties
对话框然后单击File Type Options
请注意,优先顺序是 Ark、GIMP、VLC。如果我尝试使用 UI 重新排列这些内容并按“确定”,则更改不会生效 - 重新打开对话框会显示以前的关联和排序,并且重新启动不会显示任何更改。
一项小小的研究告诉我,文件关联存储在这些文件之一中,具体取决于您运行的 *nix:
/usr/share/applications/defaults.list
/usr/share/applications/mimeapps.list
/usr/local/share/applications/defaults.list
/usr/local/share/applications/mimeapps.list
$HOME/.local/share/applications/defaults.list
$HOME/.local/share/applications/mimeapps.list
在我的Ubuntu系统上,只存在以下两个文件。
/usr/share/applications/defaults.list
$HOME/.local/share/applications/mimeapps.list
正在调查...
$> grep matroska {/usr,/usr/local,$HOME/.local}/share/applications/{defaults,mimeapps}.list 2>/dev/null
/usr/share/applications/defaults.list:application/x-matroska=org.gnome.Totem.desktop
/usr/share/applications/defaults.list:audio/x-matroska=org.gnome.Totem.desktop
/usr/share/applications/defaults.list:video/x-matroska=org.gnome.Totem.desktop
$HOME/.local/share/applications/mimeapps.list:video/x-matroska=vlc.desktop;org.kde.ark.desktop;gimp.desktop;
$HOME/.local/share/applications/mimeapps.list:video/x-matroska=vlc.desktop;
这似乎表明ark
是不是文件的第一优先级文件关联*.mkv
。这也是该字符串ark
在所有这些文件中唯一出现的一次,并且没有出现该字符串mkv
。
由此我得出结论,Dolphin 正在从上面列出的文件以外的其他地方找到其文件关联。
我错过了什么?
答案1
您缺少用户特定的 mimetype 关联的主要默认位置:
~/.config/mimeapps.list
或者,更一般地说:
$XDG_CONFIG_HOME/mimeapps.list
哪里$XDG_CONFIG_HOME
~/.config/
默认情况下。
但不要感到难过:你们有很好的伙伴。这个位置多年来一直是标准,但不幸的是许多应用程序仍然使用旧位置,造成很多混乱和冲突。以下是 FreeDesktop 标准的摘录:
该文件的查找顺序如下:
$XDG_CONFIG_HOME/$desktop-mimeapps.list user overrides, desktop-specific (for advanced users) $XDG_CONFIG_HOME/mimeapps.list user overrides (recommended location for user configuration GUIs) $XDG_CONFIG_DIRS/$desktop-mimeapps.list sysadmin and ISV overrides, desktop-specific $XDG_CONFIG_DIRS/mimeapps.list sysadmin and ISV overrides $XDG_DATA_HOME/applications/$desktop-mimeapps.list for completeness, deprecated, desktop-specific $XDG_DATA_HOME/applications/mimeapps.list for compatibility, deprecated $XDG_DATA_DIRS/applications/$desktop-mimeapps.list distribution-provided defaults, desktop-specific $XDG_DATA_DIRS/applications/mimeapps.list distribution-provided defaults
https://specations.freedesktop.org/mime-apps-spec/1.0.1/ar01s02.html
顺便说一句,~/.local/share/applications/defaults.list
它被弃用的时间甚至比
~/.local/share/applications/mimeapps.list
.
就我个人而言,我一直认为 defaults.list 是全局文件,因为这就是 Debian GNOME 团队用来为用户设置默认应用程序的文件,并且用户自己的本地目录中的 mimeapps.list 将覆盖该全局 defaults.list 我看到现在我错了,mimeapps.list也可以在全球范围内使用,Debian仍然使用defaults.list只是出于历史原因
Xfce 的实用程序在定义首选应用程序/文件关联时修改用户目录中的 mimeapps.list 我希望 GNOME 如今也能做同样的事情
那么,为了消除混乱,是否可以在某个地方将 defaults.list 声明为过时,以便停止混乱?
https://lists.freedesktop.org/archives/xdg/2014-February/013182.html
更多信息:
- https://askubuntu.com/questions/154906/which-default-list-should-i-modify-for-default-applications-and-what-are-the-dif
- https://askubuntu.com/questions/16580/where-are-file-associations-stored
- https://github.com/IgnorantGuru/spacefm/issues/71
- https://github.com/mbeijen/File-MimeInfo/issues/8
- https://lists.freedesktop.org/archives/xdg/2014-February/013183.html
- https://lkubaski.wordpress.com/2012/10/29/understanding-file-associations-in-lxde-and-pcmanfm/
- https://wiki.archlinux.org/index.php/XDG_MIME_Applications#mimeapps.list