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

x-y*_*uri 5 files mime-type file-association

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

我两个transmission都已经deluge安装了。application/x-bittorrent根据/usr/share/gnome/applications/defaults.list和的内容,我对哑剧类型没有关联~/.local/share/applications/mimeapps.list。但扩展似乎.torrent有关联,而且是transmission. 那是当我双击一个.torrent文件时,transmission被打开。当我在 中打开它时也是如此chromium

问题是它是怎么来的transmission?为什么不deluge?两者的文件中都有这种 mime 类型.desktop。关联是否存储在其他地方?

UPD

$ 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
Run Code Online (Sandbox Code Playgroud)

默认为transmission. 更改顺序会/usr/share/applications/mimeinfo.cache更改默认应用程序。也许人们不应该依赖这种行为。

jII*_*jII 3

MIME 类型和.desktop文件有两种关联方式。

方法一

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

[Default Applications]
application/x-bittorrent=transmission.desktop;deluge.desktop
Run Code Online (Sandbox Code Playgroud)

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

方法二

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

MimeType=application/x-bittorrent;x-scheme-handler/magnet;
Run Code Online (Sandbox Code Playgroud)

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

使用哪个应用程序?

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

步骤 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
Run Code Online (Sandbox Code Playgroud)

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

尽管您没有任何 MIME 配置文件,但transmission使用该文件的原因是标准定义的步骤 2 。检查您的transmission-gtk.desktop文件,看看它是否宣传其打开种子的能力。

我建议阅读链接的文档以充分理解。


Ali*_*liN 0

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

打开用

您只需选择您喜欢的应用程序并将其设置为默认应用程序即可。

右键单击文件时,您还可以看到打开方式列表。双击打开,使用默认的。