Como adicionar um ícone do tipo MIME no diretório inicial?

3

Sobre o mimetype

Eu criei um tipo MIME e quero adicionar um ícone para ele. O tipo MIME é para listas de tarefas, corresponde ao padrão TODO e é do tipo text/todo .

Posso confirmar que, ao criar um arquivo chamado TODO , ele mostra que é do tipo MIME text/todo .

Tenta adicionar o ícone

  1. Portanto, vinculei um arquivo SVG a ~/.local/share/icons/hicolor/48x48/mimetypes/text-todo.svg esperando que esse arquivo fosse usado como ícone do meu tipo MIME. No entanto, não é.

  2. Eu prossigo para executar sudo update-icon-caches ~/.local/share/icons/hicolor , que é executado silenciosamente, mas nada muda.

  3. Eu, então, executo sudo gtk-update-icon-cache ~/.local/share/icons/hicolor , mas recebo a mensagem:

  

gtk-update-icon-cache: nenhum arquivo de índice de tema.

ou

  

gtk-update-icon-cache: o cache gerado era inválido.

ao executar sudo gtk-update-icon-cache -tf ~/.local/share/icons/hicolor . Isso também, como seria de esperar, nada muda.

Então, como adiciono um ícone ao meu tipo mime no meu diretório pessoal?

    
por Severo Raz 20.12.2013 / 07:47

2 respostas

2

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.

    
por Severo Raz 10.08.2014 / 03:20
0

Eu testo todos os métodos que posso encontrar (teste muitos diretórios), e aqui está o caminho certo que eu acho. Minha versão do sistema é 16.04.

Devido ao tipo MIME é OK para o documento freecad, eu apenas configuro o ícone.

  1. encontrou o nome do tipo MIME, por exemplo application / x-extension-fcstd :

    ▶ mimetype '/ home / eexp / 文档 /freecad/cigar1.fcstd' / home / eexp / 文档 /freecad/cigar1.fcstd: aplicativo / x-extension-fcstd

  2. encontrou um arquivo svg e cp adequado aqui / usr / share / icons / hicolor / escalável / mimetypes , e o nome do arquivo deve ser application-x-extension-fcstd que assim como o nome do tipo MIME:

    ▶ sudo cp ~ / FreeCAD-logo.svg /usr/share/icons/hicolor/scalable/mimetypes/application-x-extension-fcstd.svg

  3. atualize o cache de ícones com -f (aqui tem o arquivo index.theme):

    ▶ sudo gtk-update-ícone-cache / usr / share / ícones / hicolor / -f

  4. nautilus muda o ícone do arquivo imediatamente .

por utopic eexpress 04.03.2017 / 12:26