Как определяется, какое приложение открыть файл определенного типа 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
файл, чтобы увидеть, рекламирует ли он свою способность открывать торренты.
Я предлагаю прочитать связанный документ для полного понимания.
Вы можете выбрать по умолчанию один в файле Свойства > Открыть с помощью [вкладка]; например для видео файла:
Вы можете просто выбрать предпочитаемое приложение и установить его по умолчанию.
Вы также можете увидеть список открытых со щелчком правой кнопкой мыши по файлу. Двойной щелчок открывает его по умолчанию.