Esta é a parte 2 de Como instalar um novo tipo mime (personalizado) no meu sistema Linux usando ferramentas CLI?
Usando as etapas na resposta aceita na pergunta acima, criei o seguinte mime-type mx-publickey.xml
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="text/x-publickey">
<comment>Custom type for public key files (plain text)</comment>
<glob-deleteall/>
<glob pattern="*.pub"/>
</mime-type>
</mime-info>
Eu instalei em todo o sistema com este comando:
# xdg-mime install --mode system mx-publickey.xml
Eu adicionei o ícone desejado:
xdg-icon-resource install --context mimetypes --size 256 x-publickey-icon.png text-x-publickey
Então eu testei. Meus arquivos '*.pub` ainda têm a associação antiga:
$ xdg-mime query filetype id_rsa_test.pub
text/plain
$ xdg-mime query default text/plain
org.kde.kate.desktop
Quais etapas adicionais são necessárias para associar arquivos '*.pub' ao meu novo tipo mime?
Editar:
Executei as etapas a seguir, mas *.pub
os arquivos de chave pública ainda não estão sendo abertos por padrão com o Kate dos aplicativos Electron.
# xdg-mime default org.kde.kate.desktop text/x-publickey
# xdg-mime query default text/x-publickey
org.kde.kate.desktop
$ xdg-mime query default text/x-publickey
org.kde.kate.desktop
Em seguida, usei as ferramentas da GUI (Configurações do sistema KDE > Aplicativos > Associações de arquivos) e *.pub
os arquivos de chave pública associados ao Kate. Os aplicativos Electron ainda se recusam a abrir *.pub
arquivos com o Kate.
Os aplicativos Electron usavam anteriormente o Okular. Após o xdg-mime default
comando mostrado acima, a associação do Okular desapareceu, mas nada a substituiu . Os aplicativos Electron agora apresentam uma caixa de diálogo KIO solicitando que eu escolha o aplicativo a ser usado. (Isso é melhor do que me forçar a usar o aplicativo errado, mas ainda não é o comportamento correto. Parece que os aplicativos Electron estão procurando em outros lugares as associações de arquivos. Eu gostaria de entender isso.)
Estou faltando um .desktop
arquivo necessário em algum local?
Outro pensamento: Após as etapas acima, acredito que agora devo ver uma entrada para text/x-publickey
in /usr/share/applications/mimeinfo.cache
. No entanto, não há um.
O
shared-mime-info
repositório já especifica oapplication/pgp-keys
tipo mime. Você pode vê-lo aqui:https://gitlab.freedesktop.org/xdg/shared-mime-info/-/blob/6bf9e4ff0fb7eff11a02bd937045bf5dc291841a/data/freedesktop.org.xml.in#L282
ou aqui em sua própria máquina:
/usr/share/mime/packages/freedesktop.org.xml
No entanto, ele não usa o
*.pub
padrão glob, provavelmente para evitar conflitos com o formato MS Publisher. Uma solução é apenas renomear os arquivos como, por exemplo,*.asc
arquivos. Mas vamos continuar, assumindo que renomear os arquivos não é uma opção. Aqui está o arquivo mimeinfo que precisamos (observe que ele deve ser nomeadopgp-keys.xml
):A vantagem da parte "mágica" é que ela procurará no início do arquivo por essa string e, em seguida, determinará o mimetype com base na correspondência ou não. Isso significa que arquivos com tipo mime
application/vnd.ms-publisher
ainda podem ter a.pub
extensão de arquivo e viver em relativa harmonia ao lado de chaves públicas que também possuem a.pub
extensão de arquivo. Para conseguir isso, devemos instalar o arquivo mimeinfo.Para instalá-lo para um único usuário:
Para instalá-lo em todo o sistema:
Eu testei o resultado com uma chave pública de exemplo daqui:
https://www.intel.com/content/www/us/en/security-center/pgp-public-key.html
e um exemplo de arquivo MS Publisher daqui:
https://github.com/apache/tika/blob/0bf11aec86079b8f1ae2f1ea680910ba79665c4f/tika-parsers/src/test/resources/test-documents/testPUBLISHER.pub
Você pode tentar você mesmo com o repositório git aqui:
https://github.com/nbeaver/custom-pub-file-mimetype