Par défaut, Firefox (33.0) sur mon FreeBSD 11.0-CURRENT a l'application par défaut pour ouvrir les files PDF définis sur Inkscape. Firefox se souvient de mon choix précédent dans la boîte de dialog "Que faire de Firefox avec ce file?", Jusqu'à récemment, j'étais confus d'où venait cette configuration, mais la plupart du time je l'ignorais parce que cela me préoccupait à peine.
Cependant, j'ai récemment commencé à utiliser Zotero comme database de littérature. Zotero fonctionne comme un plugin firefox, et ignore les choix faits dans mes preferences Firefox pour ouvrir des files PDF avec evince ou me requestr quoi faire avec eux, et les ouvre simplement en utilisant Inkscape. Cela m'a fait essayer de suivre cet élément de configuration particulier de Firefox, mais je ne pouvais pas find où ce défaut est défini.
Je n'ai pas pu find la string Inkscape
(ou inkscape
) dans n'importe quel file lié à Firefox dans mon directory personnel.
Un lien vers une "question similaire" ( comportement des applications par défaut xdg-ouvert – pas évidemment apparenté, mais une expérimentation a montré que le comportement est en effet équivalent à celui de xdg-open
) m'a conduit plus profondément dans le lapin. Bien que Firefox ne s'appuie pas sur, ou hérite des règles de xdg-open
, il utilise les files de spécification MIME comme xdg-open
.
A titre d'user, le comportement d'ouverture MIME est configuré par le file de spécification ~/.local/share/applications/mimeapps.list
.
Pour moi, ce file contient juste quelques protocoles raisonnables et des files HTML (et similaires) connectés à userapp-Firefox-??????.desktop
, mais vous pourriez facilement append une ligne comme
application/pdf=evince.desktop
pour résoudre ce problème sur une base par user. Si le file n'existe pas encore, assurez-vous d'append un en-tête de section, tel que
[Default Applications] application/pdf=evince.desktop
Plus bas, les types MIME sont définis dans /usr/local/share/applications/mimeinfo.cache
(ceci peut être /usr/share/…
si vous n'êtes pas sur un système FreeBSD), qui list list application/pdf=inkscape.desktop;evince.desktop;
. evince.desktop
et inkscape.desktop
dans ce dossier contiennent MimeType=[…]application/pdf;[…]
.
Le mimeinfo.cache
est automatiquement généré à partir des types mime répertoriés dans les files .desktop
sans ordre bien défini. Vous devez soit supprimer le type MIME PDF d'Inkscape et régénérer le cache à l'aide de update-mime-database
, soit générer un mimeapps.list (globalement dans /usr/local/share/applications/
, ou pour votre user dans ~/.local/share/applications/mimeapps.list
).
Dans Firefox 38.8.0 ESR, sous Debian Lenny avec GNOME 2, j'ai découvert que l'application associée via XDG (décrite dans la réponse par l'OP ) est utilisée uniquement lors de l'ouverture d'un file téléchargé depuis Downloads in the Library.
Et même là, la mise en œuvre donne des résultats incohérents avec xdg-open
car il ignore les paths propres à GNOME (dans mon cas /usr/share/gnome/applications/defaults.list
, qui est un lien symbolique vers /etc/gnome-vfs-2.0/defaults.list
). Je devais spécifier application/pdf=evince.desktop
dans mon application/pdf=evince.desktop
~/.local/share/applications/defaults.list
. (Notez que defaults.list
été fusionné dans mimeapps.list
dans les versions plus récentes de XDG.)
Au lieu de XDG, les fonctionnalités de métamail (mailcap) sont utilisées pour résoudre l'application associée pour les cas d'utilisation suivants:
about:preferences#applications
) La preference dans about:preferences#applications
est utilisée lors de la navigation vers une URL avec ce type de contenu, sauf si le téléchargement est forcé.
Mailcap est un mécanisme plus ancien que XDG et a ses racines dans le courrier électronique, d'où provient MIME. L'utilitaire run-mailcap
est run-mailcap
à xdg-open
. Sa configuration comprend trois files (en priorité décroissante):
~/.mailcap
– inputs user /etc/mailcap.order
– spécification de command des inputs système /etc/mailcap
– inputs à l'échelle du système (même format que les inputs user) Ensemble, ils produisent une list d'inputs d'une ligne qui spécifient l'application à utiliser pour un type MIME donné. Les inputs sont appariées de haut en bas, donc ce qui vient en premier a priorité.
Pour effectuer un changement de priorité des inputs à l'échelle du système, vous devez modifier /etc/mailcap.order
et exécuter update-mime
.
Pour replace certaines inputs ou spécifier les vôtres, à l'échelle du système, vous devez modifier la section supérieure (destinée aux inputs créées manuellement) de /etc/mailcap
et exécuter update-mime
. Voir les commentaires dans la section supérieure.
Pour les inputs user et les rlocations, utilisez ~/.mailcap
. Les changements prennent effet immédiatement. Non ~/.mailcap.order
existe; si vous souhaitez modifier la priorité des inputs, réorganisez-les physiquement (s'ils sont dans ~/.mailcap
) ou remplacez-les par la version préférée (s'ils sont dans /etc/mailcap
).
Voir man update-mime
, man mailcap
et man mailcap.order
.
Notez que certaines applications utilisent des utilitaires generics (tels que x-www-browser
ou pager
) au lieu de la détection de l'application préférée. Vous devrez peut-être utiliser update-alternatives
ou un mécanisme similaire pour choisir l'implémentation préférée d'un utilitaire générique dans votre dissortingbution. Ou, pour replace une alternative préférée à l'échelle du système pour un user spécifique, définissez des variables d'environnement telles que EDITOR
(ou VISUAL
), PAGER
et BROWSER
. Ils sont supportés par un sensible-browser
et d'autres outils, souvent plus spécifiques (par exemple, git commit
utilise EDITOR
et VISUAL
).