Eu passei um tempo bastante longo tentando acertar, e finalmente consegui.
Criando o mimetype
Primeiro, você precisa criar um arquivo mimetype e salvá-lo no diretório local ~/.local/share/mime/packages/
. O arquivo pode ter uma estrutura como esta:
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/todo">
<comment>To-do list</comment>
<glob case-sensitive="true" pattern="TODO" />
<glob case-sensitive="true" pattern="TODO *"/>
</mime-type>
</mime-info>
Certifique-se de que campos como type
na tag mime-type
do elemento correspondam ao tipo MIME desejado e que as tags glob
do elemento contenham um atributo pattern
cujo valor corresponda ao padrão do tipo MIME ausente. Como você pode ver, seu tipo MIME pode abranger vários padrões de nome de arquivo por meio de vários elementos glob
.
No caso do meu tipo de amostra TODO , eu precisava que o padrão fosse sensível a maiúsculas e minúsculas, então eu usei um par de valores de atributo case-sensitive="true"
; Se você não precisa de sensibilidade a maiúsculas e minúsculas, esse par de valor-atributo não é necessário.
Após concluir o arquivo do tipo MIME, salve-o com um nome conveniente, como todo.xml
. ( Nota: a extensão XML pode ser importante.)
Agora, execute o comando update-mime-database ~/.local/share/mime/
e você deve terminar com ele. Este comando colocará seu mimetype no diretório de categoria correto em ~/.local/share/mime
.
Teste
Você pode testar se o seu tipo MIME foi analisado corretamente lendo os arquivos ~/.local/share/mime/glob
e testando arquivos específicos com comandos como
-
mimetype FILENAME
-
xdg-mime query filetype FILENAME
Isso só funcionará depois que você atualizar o banco de dados mime.
Adicionando o ícone
Em muitas distribuições linux, ícones de terceiros / addons são arquivados sob o tema de ícones "hicolor", que é um tema de ícone de fallback que outros temas de ícones dependem.
Adicione seu ícone ao diretório correto em ~/.local/share/icons/hicolor/
(de acordo com o arquivo descritor /usr/share/icons/hicolor/index.theme
que lista os subdiretórios válidos), execute update-icon-caches ~/.local/share/icons/hicolor
e você deve estar pronto!
O seu gerenciador de área de trabalho pode exigir uma reinicialização para associar os novos tipos MIME aos novos ícones.
Solução de problemas
Se seus arquivos não obtiverem o mimetype / icon que você definiu para eles, certifique-se de verificar muito bem os padrões no arquivo XML do tipo MIME. Às vezes, testar um padrão óbvio pode ajudá-lo a verificar isso.