Nunca tive problemas ao abrir arquivos PDF até recentemente. Então, eu queria ler o pacote xcolor para TeX e digitei o seguinte comando:
texdoc xcolor
Isso sempre funcionou, abrindo a documentação no meu visualizador de PDF preferido, qpdfview. Mas agora ele tenta abri-lo com qpdfview, mas qpdfview exibe um erro:
Could not open '/usr/share/texlive/texmf-dist/doc/latex/xcolor/xcolor.pdf'.
E no terminal recebo a seguinte mensagem de erro:
Unknown MIME type: ""
"Could not match file type of '/usr/share/texlive/texmf-dist/doc/latex/xcolor/xcolor.pdf'!"
Estou executando o gerenciador de janelas lado a lado i3 no Ubuntu 21.04 e meus $XDG_CURRENT_DESKTOP e $DESKTOP_SESSION estão definidos como 'i3'.
Então, em um arquivo PDF em bom estado, digitei:
$ mimetype TrigLocal.pdf
TrigLocal.pdf: text/plain
No entanto,
$ file --mime-type
application/pdf
Correto.
Então, eu tentei
$ xdg-open TrigLocal.pdf
gio: file:///home/ded/TeXexamples/TrigLocal.pdf: No application is registered as handling this file
OK, talvez o gio não esteja configurado corretamente:
$ gio mime TrigLocal.pdf
No default applications for “TrigLocal.pdf”
Eu tentei definir o manipulador com
$ xdg-mime default qpdfview.desktop application/pdf
Mas quando eu consulto:
$ xdg-mime query default application/pdf
qpdfview-chromium.desktop
Essa é uma variante, mas eu não defini. De qualquer forma, não tem efeito no xdg-open:
$ xdg-open TrigLocal.pdf
gio: file:///home/ded/TeXexamples/TrigLocal.pdf: No application is registered as handling this file
Não sei o que está errado e não consigo encontrar nenhuma orientação clara em lugar nenhum, pelo menos nenhuma que funcione.
Todo o ecossistema de associação de tipos de arquivos com manipuladores no Ubuntu me confunde, então eu apreciaria um bom tutorial de visão geral que explicasse as relações entre:
tipo mime xdg-open gio
e qualquer outra coisa relevante para me ajudar a consertar meu sistema não-Gnome e não-KDE.
Atualizar
Por sugestão do @steeldriver, executei:
$ mimetype --debug TrigLocal.pdf
> Data dirs are: /home/ded/.local/share, /var/lib/flatpak/exports/share /home/ded/.local/share /flatpak/exports/share
> Checking inode type
> Checking globs for basename 'TrigLocal.pdf'
> Checking for extension '.pdf'
> Checking globs for basename 'triglocal.pdf'
> Checking for extension '.pdf'
> File exists, trying default method
TrigLocal.pdf: text/plain
Não vejo nada de interessante em ~/.local/share, mas vejo isto:
$ cat ~/.local/share/applications/mimeapps.list
[Default Applications]
application/pdf=qpdfview.desktop
application/html=google-chrome.desktop
text/html=google-chrome.desktop
x-scheme-handler/http=google-chrome.desktop
x-scheme-handler/https=google-chrome.desktop
x-scheme-handler/about=google-chrome.desktop
x-scheme-handler/unknown=google-chrome.desktop
[Added Associations]
application/pdf=evince.desktop;zathura-pdf-poppler.desktop;
Responder1
Eu encontrei o problema. Executar mimetype --debug deu uma dica, mas eu não estava vendo. (Obrigado @steeldriver) Tentei o mesmo comando do root no mesmo arquivo e deu a resposta correta.
Acontece que, por algum motivo, uma configuração para a variável de ambiente XDG_DATA_DIRS entrou no meu arquivo de configuração do shell e excluiu os diretórios padrão.
De acordo coma especificação XDG, ele está definido como "/usr/local/share:/usr/share" por padrão, e minha configuração estava substituindo-os, então o banco de dados mime padrão em /usr/share/mime/freedesktop.org.xml não estava sendo lido no sistema de detecção de mímica.
Como a configuração errada adicionou alguns diretórios relacionados ao flatpak, devo ter adicionado a configuração em conexão com o teste de flatpaks, mas não me lembro de ter feito tal coisa, então talvez a configuração tenha sido adicionada ao meu arquivo config.fish pelas minhas costas .
De qualquer forma, espero que isso ajude alguém no futuro.