Por padrão, o Firefox (33.0) no meu FreeBSD 11.0-CURRENT possui o aplicativo padrão para abrir arquivos PDF definido como Inkscape. O Firefox se lembra da minha escolha anterior, evidenciada em "O que o Firefox deve fazer com este arquivo?" até recentemente, eu estava confuso de onde vinha essa configuração, mas a ignorei porque mal me preocupava.
No entanto, recentemente comecei a usar o Zotero como meu banco de dados de literatura. O Zotero é executado como um plug-in do Firefox, e ignora as opções feitas nas minhas preferências do Firefox para abrir arquivos PDF com evince ou me perguntar o que fazer com eles, e apenas os abre usando o Inkscape. Isso me fez tentar acompanhar esse item de configuração específico do Firefox, mas não consegui encontrar onde esse padrão está definido.
Não consegui encontrar a string Inkscape
(ou inkscape
) em nenhum arquivo relacionado ao Firefox no meu diretório pessoal.
fonte
Respostas:
Um link para uma “pergunta semelhante” ( comportamento padrão de aplicativos xdg-open - não obviamente relacionados, mas algumas experiências mostraram que o comportamento é realmente equivalente ao de
xdg-open
) me levou mais fundo na toca do coelho. Embora o Firefox não dependa ou herda regras dexdg-open
, ele usa os arquivos de especificação MIME da mesma forma quexdg-open
faz.Com base no usuário, o comportamento de abertura do MIME é configurado pelo arquivo de especificação
~/.local/share/applications/mimeapps.list
.Para mim, esse arquivo contém apenas alguns protocolos razoáveis e arquivos HTML (e similares) conectados
userapp-Firefox-??????.desktop
, mas você pode adicionar facilmente uma linha comopara resolver esse problema por usuário. Se o arquivo ainda não existir, adicione um cabeçalho de seção, como
Mais profundamente, os tipos MIME são definidos em
/usr/local/share/applications/mimeinfo.cache
(isto pode ser/usr/share/…
se você não estiver em um sistema FreeBSD), que listaapplication/pdf=inkscape.desktop;evince.desktop;
. Ambosevince.desktop
einkscape.desktop
nessa pasta contêmMimeType=[…]application/pdf;[…]
.O
mimeinfo.cache
é gerado automaticamente a partir dos tipos MIME listados nos.desktop
arquivos sem nenhuma ordem bem definida, portanto, você precisará remover o tipo MIME PDF do Inkscape e regenerar o cache usandoupdate-mime-database
ou gerar um mimeapps.list (globalmente em/usr/local/share/applications/
ou para o seu usuário em~/.local/share/applications/mimeapps.list
).fonte
update-mime-database
faz algo diferente, eu precisavaupdate-desktop-database ~/.local/share/applications
.xdg-open file.pdf
abre o Evince (como o Nautilus), enquanto o Firefox abre o xpdf. Usandofind ~/.local/share/applications/ /usr/share/applications/ -type f -exec grep -i pdf '{}' +
, descobri que o PDF não é mencionado em nenhum lugar na configuração do usuário, apenas nos arquivos/usr/share/applications/mimeinfo.cache
e respectivos*.desktop
. A linhamimeinfo.cache
éapplication/pdf=xpdf.desktop;evince.desktop;xournal.desktop;
. Eu acho que FF leva o primeiro item. Mas comoxdg-open
sei que eu quero Evince?strace
, descobri quexdg-open
chamadasgnome-open
egnome-open
leituras/usr/share/gnome/applications/defaults.list
, que é um link simbólico/etc/gnome-vfs-2.0/defaults.list
, o que especificaapplication/pdf=evince.desktop
. Obviamente, o FF baunilha não possui integração com o GNOME e, portanto, ignora essa preferência.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 especificarapplication/pdf=evince.desktop
no meu~/.local/share/applications/defaults.list
. (Observe quedefaults.list
foi mesclado nasmimeapps.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:
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 paraxdg-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 executarupdate-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
eman mailcap.order
.Observe que alguns aplicativos usam utilitários genéricos (como
x-www-browser
oupager
) em vez da detecção do aplicativo preferido. Pode ser necessário usarupdate-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 comoEDITOR
(ouVISUAL
)PAGER
eBROWSER
. Eles são suportados porsensible-browser
e outras ferramentas, geralmente mais específicas (por exemplo,git commit
usosEDITOR
eVISUAL
).fonte
application/pdf; sh -c "MEANINGFUL_VAR=preset /usr/bin/evince '%s'"
. O Firefox então chamash downloaded_file.pdf
. No meu console, vejo, entre outros,/tmp/mozilla_user/downloaded_file.pdf: line 3: 5: command not found
etc. Esse comportamento permanecerá para sempre, a menos que alguém conserte isso. Veja Mozilla Bugzilla .update-mime
(para atualizar o mailcap),xdg-settings
(para atualizar o xdg-open),gio
(para atualizar o gnome-open) eupdate-alternatives
(para atualizar os chamados utilitários genéricos). E é claro que ele / ela não deve esquecer de gerenciar as configurações em todo o sistema e para cada usuário separadamente (provavelmente melhor bloquear a capacidade do usuário de alterar os padrões) ... - ah, e o arquivo handlers.json do FF: mzl.la/1xKrLAq