В 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
).