В Firefox 38.8.0 ESR в Debian Lenny с GNOME 2 я обнаружил, что приложение, связанное с помощью XDG (описано в ответе OP ), используется только при открытии загруженного файла из раздела « Загрузки» в библиотеке.
И даже там реализация дает результаты, несовместимые с тем, xdg-openчто игнорирует специфичные для GNOME пути (в моем случае /usr/share/gnome/applications/defaults.listэто символическая ссылка /etc/gnome-vfs-2.0/defaults.list). Я должен был указать application/pdf=evince.desktopв моем ~/.local/share/applications/defaults.list. (Обратите внимание, что это defaults.listбыло объединено в mimeapps.listболее поздних версиях XDG.)
Вместо XDG возможности метапочты (mailcap) используются для разрешения ассоциированного приложения в следующих случаях:
- открытие загруженного файла с панели загрузки (отображается после нажатия кнопки загрузки на панели инструментов)
- приложение по умолчанию в раскрывающемся списке в диалоговом окне загрузки файлов
- приложение по умолчанию в раскрывающемся меню «Настройки» → «Приложения» (
about:preferences#applications)
Параметр in about:preferences#applicationsиспользуется при переходе к URL-адресу с этим типом содержимого, если загрузка не является принудительной.
Mailcap является механизмом старше XDG и имеет свои корни в электронной почте, откуда и MIME. run-mailcapУтилита аналогична xdg-open. Его конфигурация состоит из трех файлов (в порядке убывания):
~/.mailcap - пользовательские записи
/etc/mailcap.order - общесистемная спецификация заказа записей
/etc/mailcap - общесистемные записи (тот же формат, что и записи пользователя)
Вместе они создают список записей в одну строку, которые указывают приложение, которое будет использоваться для любого данного типа MIME. Записи сопоставляются сверху вниз, поэтому приоритет имеет то, что находится на первом месте.
Чтобы сделать общесистемное изменение приоритета записей, вам нужно отредактировать /etc/mailcap.orderи запустить update-mime.
Чтобы переопределить некоторые записи или указать свои собственные, для всей системы, вам нужно отредактировать верхний раздел (предназначенный для записей, созданных вручную) /etc/mailcapи запустить update-mime. Смотрите комментарии в верхнем разделе.
Для пользовательских записей и переопределений используйте ~/.mailcap. Изменения вступают в силу немедленно. Нет ~/.mailcap.orderсуществует; если вы хотите изменить приоритет записей, измените их физический порядок (если они есть ~/.mailcap) или переопределите их предпочитаемой версией (если они есть /etc/mailcap).
Видите man update-mime, man mailcapи man mailcap.order.
Обратите внимание, что некоторые приложения используют общие утилиты (такие как x-www-browserили pager) вместо обнаружения предпочтительного приложения. Возможно, вам придется использовать update-alternativesили подобный механизм для выбора предпочтительной реализации универсальной утилиты в вашем дистрибутиве. Или, чтобы переопределить общесистемную предпочтительную альтернативу для конкретного пользователя, установите переменные среды, такие как EDITOR(или VISUAL) PAGERи BROWSER. Они поддерживаются sensible-browserи другими, часто более конкретными инструментами (например, git commitиспользует EDITORи VISUAL).