Par défaut, Firefox (33.0) sur mon FreeBSD 11.0-CURRENT a l'application par défaut pour l'ouverture des fichiers PDF définie sur Inkscape. Firefox se souvient de mon choix précédent, comme en témoigne "Que doit faire Firefox avec ce fichier?" dialogue, donc jusqu'à récemment, je ne savais pas d'où venait cette configuration, mais je l'ignorais surtout car cela me concernait à peine.
J'ai cependant récemment commencé à utiliser Zotero comme base de données de littérature. Zotero fonctionne comme un plugin firefox et ignore les choix effectués dans mes préférences Firefox pour ouvrir des fichiers PDF avec evince ou me demander 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 n'ai pas pu trouver où cette valeur par défaut est définie.
Je n'ai pas pu trouver la chaîne Inkscape
(ou inkscape
) dans un fichier lié à Firefox dans mon répertoire personnel.
la source
Réponses:
Un lien vers une «question similaire» ( comportement des applications par défaut xdg-open - pas évidemment lié, mais certaines expériences ont montré que le comportement est en effet équivalent à celui de
xdg-open
) m'a conduit plus profondément dans le terrier du lapin. Bien que Firefox ne s'appuie pas sur les règles ou n'en hérite pasxdg-open
, il utilise les fichiers de spécification MIME de la même manièrexdg-open
.Sur une base utilisateur, le comportement d'ouverture MIME est configuré par le fichier de spécification
~/.local/share/applications/mimeapps.list
.Pour moi, ce fichier ne contient que quelques protocoles et fichiers HTML (et similaires) raisonnables
userapp-Firefox-??????.desktop
, mais vous pouvez facilement ajouter une ligne commepour résoudre ce problème par utilisateur. Si le fichier n'existe pas encore, assurez-vous d'ajouter un en-tête de section, tel que
Plus profondément, les types MIME sont définis dans
/usr/local/share/applications/mimeinfo.cache
(cela peut être/usr/share/…
si vous n'êtes pas sur un système FreeBSD), qui fait la listeapplication/pdf=inkscape.desktop;evince.desktop;
. Les deuxevince.desktop
etinkscape.desktop
dans ce dossier contiennentMimeType=[…]application/pdf;[…]
.Le
mimeinfo.cache
est généré automatiquement à partir des types MIME répertoriés dans les.desktop
fichiers sans ordre bien défini, vous devrez donc soit supprimer le typeupdate-mime-database
MIME PDF d'Inkscape et régénérer le cache à l'aide , soit générer une liste mimeapps.list (soit globalement dans/usr/local/share/applications/
, soit pour votre utilisateur~/.local/share/applications/mimeapps.list
).la source
update-mime-database
fait quelque chose de différent, j'avais besoinupdate-desktop-database ~/.local/share/applications
.xdg-open file.pdf
ouvre Evince ( tout comme Nautilus), tandis que Firefox ouvre xpdf. En utilisant,find ~/.local/share/applications/ /usr/share/applications/ -type f -exec grep -i pdf '{}' +
j'ai trouvé que PDF n'est mentionné nulle part dans la configuration utilisateur, uniquement dans/usr/share/applications/mimeinfo.cache
les*.desktop
fichiers respectifs . La lignemimeinfo.cache
estapplication/pdf=xpdf.desktop;evince.desktop;xournal.desktop;
. Je suppose que FF prend le premier élément. Mais commentxdg-open
sais-je que je veux Evince?strace
, j'ai découvert que lesxdg-open
appelsgnome-open
et lesgnome-open
lectures/usr/share/gnome/applications/defaults.list
, qui est un lien symbolique vers/etc/gnome-vfs-2.0/defaults.list
, qui spécifieapplication/pdf=evince.desktop
. De toute évidence, vanilla FF manque d'intégration GNOME et ignore donc cette préférence.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 de l'OP ) n'est utilisée que lors de l'ouverture d'un fichier téléchargé depuis Téléchargements dans la bibliothèque.
Et même là, l'implémentation donne des résultats incohérents
xdg-open
car elle ignore les chemins spécifiques à GNOME (dans mon cas/usr/share/gnome/applications/defaults.list
, qui est un lien symbolique/etc/gnome-vfs-2.0/defaults.list
). Je devais préciserapplication/pdf=evince.desktop
dans mon~/.local/share/applications/defaults.list
. (Notez que cela adefaults.list
été fusionné dansmimeapps.list
les versions plus récentes de XDG.)Au lieu de XDG, les capacité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 préférence 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 également MIME. L'
run-mailcap
utilitaire est analogue àxdg-open
. Sa configuration comprend trois fichiers (de priorité décroissante):~/.mailcap
- entrées utilisateur/etc/mailcap.order
- spécification de commande des entrées à l'échelle du système/etc/mailcap
- entrées à l'échelle du système (même format que les entrées utilisateur)Ensemble, ils produisent une liste d'entrées d'une ligne qui spécifient l'application à utiliser pour tout type MIME donné. Les entrées sont appariées de haut en bas, donc ce qui vient en premier est prioritaire.
Pour que la modification des entrées soit prioritaire à l'échelle du système, vous devez la modifier
/etc/mailcap.order
et l'exécuterupdate-mime
.Pour remplacer certaines des entrées ou spécifier la vôtre, à l'échelle du système, vous devez modifier la section supérieure (destinée aux entrées créées manuellement)
/etc/mailcap
et l'exécuterupdate-mime
. Voir les commentaires dans la section supérieure.Pour les entrées utilisateur et les remplacements, utilisez
~/.mailcap
. Les modifications prennent effet immédiatement. Aucun~/.mailcap.order
n'existe; si vous souhaitez modifier la priorité des entrées, les réorganiser physiquement (si elles sont en~/.mailcap
) ou les remplacer par la version préférée (si elles sont en/etc/mailcap
).Voir
man update-mime
,man mailcap
etman mailcap.order
.Notez que certaines applications utilisent des utilitaires génériques (tels que
x-www-browser
oupager
) au lieu de détecter l'application préférée. Vous devrez peut-être utiliserupdate-alternatives
ou un mécanisme similaire pour choisir l'implémentation préférée d'un utilitaire générique dans votre distribution. Ou, pour remplacer une alternative préférée à l'échelle du système pour un utilisateur spécifique, définissez des variables d'environnement telles queEDITOR
(ouVISUAL
)PAGER
etBROWSER
. Ils sont pris en charge par d'sensible-browser
autres outils, souvent plus spécifiques (par exemple, lesgit commit
utilisationsEDITOR
etVISUAL
).la source
application/pdf; sh -c "MEANINGFUL_VAR=preset /usr/bin/evince '%s'"
. Firefox invoque ensuitesh downloaded_file.pdf
. Sur ma console, je vois, entre autres,/tmp/mozilla_user/downloaded_file.pdf: line 3: 5: command not found
etc. Ce comportement restera pour toujours, à moins que quelqu'un ne le corrige. Voir Mozilla Bugzilla .update-mime
(pour mettre à jour mailcap),xdg-settings
(pour mettre à jour xdg-open),gio
(pour mettre à jour gnome-open) etupdate-alternatives
(pour mettre à jour les soi-disant utilitaires génériques). Et bien sûr, il / elle ne doit pas oublier de gérer les paramètres à la fois à l'échelle du système et pour chaque utilisateur séparément (probablement mieux pour bloquer la capacité de l'utilisateur à modifier les valeurs par défaut) ... - ah, et le fichier handlers.json de FF également: mzl.la/1xKrLAq