Как определяется, какое приложение открыть файл определенного типа mime?

Я видел следующий вопрос, но пока не могу комментировать. Поэтому я решил создать отдельный.

у меня есть оба transmission а также deluge установлены. И я не имею никакого отношения к application/x-bittorrent тип пантомимы, основанный на содержании /usr/share/gnome/applications/defaults.list а также ~/.local/share/applications/mimeapps.list, Но похоже .torrent расширение имеет ассоциацию, и это transmission, То есть, когда я дважды щелкаю .torrent файл, transmission открыт. То же самое касается, когда я открываю его в chromium,

Вопрос в том, как это получается? transmission? Почему бы и нет deluge? У обоих есть этот тип пантомимы в их .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

По умолчанию transmission, Изменение порядка в /usr/share/applications/mimeinfo.cache изменяет приложение по умолчанию. Вероятно, не следует полагаться на это поведение.

2 ответа

Есть два способа, тип MIME и .desktop файл связан.

Способ 1

Первый путь через *.list Конфигурационные файлы MIME (многие существуют в системе, см. Ниже). Например, типичная запись в ~/.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 и приложениями определяется 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

Шаг 2: После того, как все уровни проверены, и если запись не может быть найдена, реализации могут выбрать любой из .desktop файлы, связанные с типом MIME, с учетом добавленных и удаленных ассоциаций (которые существуют в конфигурационных файлах MIME).

Хотя у вас нет никаких файлов конфигурации MIME, причина того, что transmission используется из-за шага 2, как определено стандартом. Проверьте свои transmission-gtk.desktop файл, чтобы увидеть, рекламирует ли он свою способность открывать торренты.

Я предлагаю прочитать связанный документ для полного понимания.

Вы можете выбрать по умолчанию один в файле Свойства > Открыть с помощью [вкладка]; например для видео файла:

Открыть с

Вы можете просто выбрать предпочитаемое приложение и установить его по умолчанию.

Вы также можете увидеть список открытых со щелчком правой кнопкой мыши по файлу. Двойной щелчок открывает его по умолчанию.

Другие вопросы по тегам