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.desktopno meu ~/.local/share/applications/defaults.list. (Observe que defaults.listfoi mesclado nas mimeapps.listversõ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-mailcaputilitá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.ordere executar update-mime.
Para substituir algumas das entradas ou especificar suas próprias, em todo o sistema, é necessário editar /etc/mailcape 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.orderexiste; 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 mailcape man mailcap.order.
Observe que alguns aplicativos usam utilitários genéricos (como x-www-browserou pager) em vez da detecção do aplicativo preferido. Pode ser necessário usar update-alternativesum 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) PAGERe BROWSER. Eles são suportados por sensible-browsere outras ferramentas, geralmente mais específicas (por exemplo, git commitusos EDITORe VISUAL).