W przeglądarce Firefox 38.8.0 ESR, w Debianie Lenny z GNOME 2, odkryłem, że aplikacja powiązana z XDG (opisana w odpowiedzi OP ) jest używana tylko podczas otwierania pobranego pliku z Pobranych w Bibliotece.
I nawet tam implementacja daje niespójne wyniki, xdg-open
ponieważ ignoruje ścieżki specyficzne dla GNOME (w moim przypadku /usr/share/gnome/applications/defaults.list
jest to dowiązanie symboliczne /etc/gnome-vfs-2.0/defaults.list
). Musiałem sprecyzować application/pdf=evince.desktop
w swoim ~/.local/share/applications/defaults.list
. (Uwaga: defaults.list
został scalony z mimeapps.list
nowszymi wersjami XDG.)
Zamiast XDG, funkcje metamail (mailcap) są używane do rozwiązania powiązanej aplikacji w następujących przypadkach użycia:
- otwieranie pobranego pliku z panelu pobierania (wyświetlane po naciśnięciu przycisku pobierania na pasku narzędzi)
- domyślna aplikacja w rozwijanym oknie dialogowym pobierania pliku
- domyślna aplikacja w menu Preferencje → Aplikacje (
about:preferences#applications
)
Preferencji w about:preferences#applications
używa się podczas nawigacji do adresu URL o tym typie treści, chyba że pobieranie jest wymuszone.
Mailcap jest mechanizmem starszym niż XDG i ma swoje korzenie w e-mailu, skąd również pochodzi MIME. run-mailcap
Narzędzie jest analogiczna xdg-open
. Jego konfiguracja składa się z trzech plików (malejących):
~/.mailcap
- wpisy użytkownika
/etc/mailcap.order
- Specyfikacja zamawiania wpisów systemowych
/etc/mailcap
- wpisy ogólnosystemowe (taki sam format jak wpisy użytkownika)
Razem tworzą listę wpisów jednowierszowych, które określają aplikację, która będzie używana dla dowolnego typu MIME. Wpisy są dopasowywane od góry do dołu, więc pierwszeństwo ma to, co pierwsze.
Aby wprowadzić w systemie zmianę pierwszeństwa wpisów, musisz edytować /etc/mailcap.order
i uruchomić update-mime
.
Aby zastąpić niektóre wpisy lub określić własne, ogólnosystemowe, musisz edytować górną sekcję (przeznaczoną do wpisów tworzonych ręcznie) /etc/mailcap
i uruchomić update-mime
. Zobacz komentarze w górnej części.
W przypadku wpisów użytkownika i przesłonięć użyj ~/.mailcap
. Zmiany wchodzą w życie natychmiast. Nie ~/.mailcap.order
istnieje; jeśli chcesz zmienić pierwszeństwo wpisów, zmień ich kolejność fizycznie (jeśli są ~/.mailcap
) lub zastąp je preferowaną wersją (jeśli są /etc/mailcap
).
Zobacz man update-mime
, man mailcap
a man mailcap.order
.
Zauważ, że niektóre aplikacje używają ogólnych narzędzi (takich jak x-www-browser
lub pager
) zamiast wykrywania preferowanej aplikacji. Może być konieczne użycie update-alternatives
lub podobnego mechanizmu do wyboru preferowanej implementacji ogólnego narzędzia w dystrybucji. Lub, aby zastąpić ogólnosystemową preferowaną alternatywę dla konkretnego użytkownika, ustaw zmienne środowiskowe, takie jak EDITOR
(lub VISUAL
) PAGER
i BROWSER
. Są one obsługiwane przez sensible-browser
i inne, często bardziej szczegółowe narzędzia (np. git commit
Zastosowania EDITOR
i VISUAL
).