如何确定哪个应用程序要打开特定 MIME 类型的文件?

如何确定哪个应用程序要打开特定 MIME 类型的文件?

我看见以下问题,但我还不能发表评论。所以我决定创建一个单独的评论。

我安装了 和transmission。根据 和 的内容,我deluge没有 mime 类型的关联。但扩展名似乎有关联,并且是。也就是说,当我双击文件时,会被打开。当我在 中打开它时也是如此。application/x-bittorrent/usr/share/gnome/applications/defaults.list~/.local/share/applications/mimeapps.list.torrenttransmission.torrenttransmissionchromium

问题是这怎么可能transmission?为什么不呢deluge?两者的文件中都有这种 MIME 类型.desktop。关联存储在其他地方吗?

更新型多巴胺

$ egrep bittorrent /usr/share/applications/mimeapps.list
egrep: /usr/share/applications/mimeapps.list: No such file or directory
$ egrep bittorrent /usr/share/applications/mimeinfo.cache
application/x-bittorrent=transmission-gtk.desktop;deluge.desktop;
$ egrep bittorrent /usr/share/applications/defaults.list

$ egrep bittorrent /home/yuri/.local/share/applications/mimeapps.list
$ egrep bittorrent /home/yuri/.local/share/applications/defaults.list
egrep: /home/yuri/.local/share/applications/defaults.list: No such file or directory

默认值为transmission。更改顺序会/usr/share/applications/mimeinfo.cache更改默认应用程序。可能不应该依赖此行为。

答案1

.desktopMIME 类型和文件关联的方式有两种。

方法 1

第一种方式是通过*.listMIME 配置文件(系统中存在许多此类文件,请参见下文)。例如,典型的条目~/.local/share/applications/mimeapps.list可能是:

[Default Applications]
application/x-bittorrent=transmission.desktop;deluge.desktop

这意味着首选应用程序是transmission,如果找不到,则第二选择是deluge

方法 2

第二种方式是通过.desktop文件本身。应用程序会通告它可以打开哪些 MIME 类型。例如,在 中transmission-gtk.desktop,我们有以下行

MimeType=application/x-bittorrent;x-scheme-handler/magnet;

这表明该程序可以处理这两种 MIME 类型。

使用哪一个应用程序?

MIME 类型和应用程序之间的关联由标准定义。以下是确定针对给定 MIME 类型启动freedesktop.org哪个应用程序(即哪个文件)时所采取的步骤。.desktop

步骤1:在 MIME 配置文件中查找关联。查找顺序如下:

$XDG_CONFIG_HOME/$desktop-mimeapps.list    
$XDG_CONFIG_HOME/mimeapps.list    
$XDG_CONFIG_DIRS/$desktop-mimeapps.list    
$XDG_CONFIG_DIRS/mimeapps.list    
$XDG_DATA_HOME/applications/$desktop-mimeapps.list    
$XDG_DATA_HOME/applications/mimeapps.list    
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list   
$XDG_DATA_DIRS/applications/mimeapps.list

第2步:一旦检查了所有级别,如果找不到任何条目,则实现可以选择.desktop与 MIME 类型相关联的任何文件,同时考虑到添加和删除的关联(存在于 MIME 配置文件中)。

虽然你没有任何 MIME 配置文件,但transmission使用它的原因是因为第2步按照标准定义。检查您的transmission-gtk.desktop文件,看看它是否宣传了其打开种子文件的能力。

我建议阅读链接的文档以获得全面的理解。

答案2

您可以在文件中选择默认文件特性>打开用[tab];例如对于视频文件:

打开用

您可以简单地选择您喜欢的应用程序并将其设置为默认应用程序。

您还可以看到打开用右键单击文件时会显示默认列表。双击将使用默认列表打开。

相关内容