У Firefox 38.8.0 ESR, під Debian Lenny з GNOME 2, я виявив, що додаток, пов’язаний через XDG (описаний у відповіді ОП ), використовується лише під час відкриття завантаженого файлу з завантажень у бібліотеці.
І навіть там реалізація дає результати, несумісні з тим 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)
Налаштування в 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).