No Firefox 38.8.0 ESR, no Debian Lenny com GNOME 2, descobri que o aplicativo associado via XDG (descrito na resposta pelo OP ) é usado apenas ao abrir um arquivo baixado de Downloads na Biblioteca.
E mesmo lá, a implementação fornece resultados inconsistentes xdg-open
, pois ignora os caminhos específicos do GNOME (no meu caso /usr/share/gnome/applications/defaults.list
, que é um link simbólico /etc/gnome-vfs-2.0/defaults.list
). Eu tive que especificar application/pdf=evince.desktop
no meu ~/.local/share/applications/defaults.list
. (Observe que defaults.list
foi mesclado nas mimeapps.list
versões mais recentes do XDG.)
Em vez do XDG, os recursos de metamail (mailcap) são usados para resolver o aplicativo associado nos seguintes casos de uso:
- abrir arquivo baixado no painel de downloads (exibido após pressionar o botão de download na barra de ferramentas)
- aplicativo padrão no menu suspenso de download de arquivo
- aplicativo padrão no menu suspenso em Preferências → Aplicativos (
about:preferences#applications
)
A preferência about:preferences#applications
é usada ao navegar para um URL com esse tipo de conteúdo, a menos que o download seja forçado.
O Mailcap é um mecanismo mais antigo que o XDG e tem suas raízes no email, de onde também vem o MIME. O run-mailcap
utilitário é analógico para xdg-open
. Sua configuração compreende três arquivos (em precedência decrescente):
~/.mailcap
- entradas de usuário
/etc/mailcap.order
- especificação de pedidos de entradas em todo o sistema
/etc/mailcap
- entradas em todo o sistema (mesmo formato das entradas do usuário)
Juntos, eles produzem uma lista de entradas de uma linha que especificam o aplicativo a ser usado para qualquer tipo MIME. As entradas são correspondidas de cima para baixo; portanto, o que vem primeiro tem precedência.
Para fazer uma alteração em todo o sistema de precedência de entradas, você precisa editar /etc/mailcap.order
e executar update-mime
.
Para substituir algumas das entradas ou especificar suas próprias, em todo o sistema, é necessário editar /etc/mailcap
e executar a seção superior (destinada a entradas criadas manualmente) update-mime
. Veja os comentários na seção superior.
Para entradas e substituições de usuário, use ~/.mailcap
. As alterações entram em vigor imediatamente. Não ~/.mailcap.order
existe; se você deseja alterar a precedência das entradas, reordene-as fisicamente (se estiverem dentro ~/.mailcap
) ou substitua-as pela versão preferida (se estiverem dentro /etc/mailcap
).
Ver man update-mime
, man mailcap
e man mailcap.order
.
Observe que alguns aplicativos usam utilitários genéricos (como x-www-browser
ou pager
) em vez da detecção do aplicativo preferido. Pode ser necessário usar update-alternatives
um mecanismo semelhante para escolher a implementação preferida de um utilitário genérico em sua distribuição. Ou, para substituir uma alternativa preferida em todo o sistema para um usuário específico, defina variáveis de ambiente como EDITOR
(ou VISUAL
) PAGER
e BROWSER
. Eles são suportados por sensible-browser
e outras ferramentas, geralmente mais específicas (por exemplo, git commit
usos EDITOR
e VISUAL
).