In Firefox 38.8.0 ESR, sotto Debian Lenny con GNOME 2, ho scoperto che l'applicazione associata tramite XDG (descritta nella risposta dall'OP ) viene utilizzata solo quando si apre un file scaricato da Download nella libreria.
E anche lì, l'implementazione fornisce risultati incoerenti xdg-open
in quanto ignora i percorsi specifici di GNOME (nel mio caso /usr/share/gnome/applications/defaults.list
, che è un link simbolico a /etc/gnome-vfs-2.0/defaults.list
). Ho dovuto specificare application/pdf=evince.desktop
nel mio ~/.local/share/applications/defaults.list
. (Nota che è defaults.list
stato unito nelle mimeapps.list
versioni più recenti di XDG.)
Invece di XDG, le funzionalità di metamail (mailcap) vengono utilizzate per risolvere l'applicazione associata per i seguenti casi d'uso:
- apertura del file scaricato dal pannello di download (visualizzato dopo aver premuto il pulsante di download nella barra degli strumenti)
- applicazione predefinita nel menu a discesa nella finestra di dialogo per il download dei file
- applicazione predefinita nel menu a discesa in Preferenze → Applicazioni (
about:preferences#applications
)
La preferenza in about:preferences#applications
viene utilizzata durante la navigazione verso un URL con quel tipo di contenuto, a meno che il download non sia forzato.
Mailcap è un meccanismo più vecchio di XDG e ha le sue radici nell'e-mail, da cui proviene anche MIME. L' run-mailcap
utilità è analoga a xdg-open
. La sua configurazione comprende tre file (in precedenza decrescente):
~/.mailcap
- voci dell'utente
/etc/mailcap.order
- specifica di ordinazione delle voci a livello di sistema
/etc/mailcap
- voci a livello di sistema (stesso formato delle voci utente)
Insieme producono un elenco di voci di una riga che specificano l'applicazione da utilizzare per un determinato tipo MIME. Le voci sono abbinate dall'alto verso il basso, quindi ciò che viene prima ha la precedenza.
Per apportare una modifica a livello di sistema delle voci precedenti, è necessario modificare /etc/mailcap.order
ed eseguire update-mime
.
Per sovrascrivere alcune voci o specificare le proprie, a livello di sistema, è necessario modificare la sezione superiore (intesa per voci create manualmente) di /etc/mailcap
ed eseguire update-mime
. Vedi i commenti nella sezione in alto.
Per le voci e le sostituzioni dell'utente, utilizzare ~/.mailcap
. Le modifiche hanno effetto immediato. No ~/.mailcap.order
esiste; se si desidera modificare la precedenza delle voci, riordinarle fisicamente (se presenti ~/.mailcap
) o sovrascriverle con la versione preferita (se presenti /etc/mailcap
).
Vedi man update-mime
, man mailcap
e man mailcap.order
.
Si noti che alcune applicazioni utilizzano utilità generiche (come x-www-browser
o pager
) invece del rilevamento dell'applicazione preferita. Potrebbe essere necessario utilizzare update-alternatives
un meccanismo simile per scegliere l'implementazione preferita di un'utilità generica nella distribuzione. Oppure, per sostituire un'alternativa preferita a livello di sistema per un utente specifico, impostare variabili di ambiente come EDITOR
(o VISUAL
) PAGER
e BROWSER
. Sono supportati da sensible-browser
e altri strumenti spesso più specifici (ad es. git commit
Usi EDITOR
e VISUAL
).