ícones diferentes para código-fonte genérico e outros arquivos

2

Estou tentando criar um tema de ícone do tipo MIME para o GNOME. Eu criei text-x-generic.svg para todos os tipos de arquivo não tematizados. Mas o que estou procurando são ícones diferentes para código-fonte não-textual (digamos, R, vala, awk etc.) e arquivo de texto simples genérico.

Isso é possível?

N.B. Eu tentei text-x-generic.svg e text-generic.svg diferenciar o código-fonte e o texto simples, mas não é isso que o linux (gnome) entende.

resposta para o comentário de don_crissti Digamos que eu tenha ícones para ruby e js , mas não para C e R . Portanto, file.c e file.r devem mostrar os ícones do ícone text-x-generic-unthemed-sourcecode . E file.dat e filename_without_extensions devem mostrar ícones diferentes ( text-generic-plaintext ).

Arquivo, eles são diferentes, como

$ file i.c
i.c: C source, ASCII text

$ file dos.dat
dos.dat: ASCII text

Então, deve haver algum jeito.

    
por BaRud 04.06.2015 / 13:46

2 respostas

0

Obrigado ao @don_crissti pelos detalhes de como funciona. Eu fui uma maneira alternativa para resolver o problema parcialmente. Eu coloquei ícones diferentes para text-plain e text-x-generic e text-x-script . O text-plain incorpora todos os arquivos sem extensões e como .dat, .txt etc; onde text-x-[generic,script] é o substituto para outros e scripts.

Concordo que esta é uma solução ad-hoc, mas resolve o problema atual. (A melhor solução é criar ícones para cada arquivo em /usr/share/mime/* )

Uma captura de tela é adicionada para mostrar como fica com apenas text-x-[python,xml,scripts,generic,plain]

    
por 05.06.2015 / 12:08
2

Os ícones usados por gnome são baseados no tipo mime, portanto, seu file.c não será detectado como text-x-generic-unthemed , mas como text-x-csrc e, como você não possui um ícone associado, ele voltará para text-x-generic . > Ex: os ícones usados para .vala são: text-x-vala, text-x-generic , mas como não há nenhum ícone text-x-vala no meu conjunto de ícones, o sistema volta para text-x-generic :

Vejaapostagem aqui sobre como determinar os ícones associados a um tipo mime específico.

Para usar um ícone de fallback diferente (por exemplo, text-x-unthemed ), é necessário personalizar definições para tipos mime que devem retornar a esse ícone específico e adicionar o ícone relevante ( text-x-unthemed ) ao ícone definido em mimetypes .

  1. Adicione o ícone e atualize o cache de ícones:

    gtk-update-icon-cache /path/to/icon_theme_directory
    
  2. Adicione definições personalizadas para tipos MIME que devem usar text-x-unthemed como ícone genérico (fallback) se eles não tiverem ícones correspondentes.
    Crie o arquivo unthemed.xml em ~/.local/share/mime/packages , por exemplo:

    <?xml version="1.0"?>
     <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
      <mime-type type="text/x-vala">
        <comment>Vala source code</comment>
        <glob pattern="*.vala" case-sensitive="true"/>
        <generic-icon name="text-x-unthemed"/>
      </mime-type>
     </mime-info>
    

    Adicione outros tipos MIME à lista, se necessário (use vala <mime-type> block como modelo).

  3. Reconstrua o cache mime com:

    update-mime-database ~/.local/share/mime
    

O sistema deve retornar ao ícone text-x-unthemed dos arquivos .vala :

Seumíconededicadotext-x-valaforadicionadoposteriormente,osistemausaráesse,porexemplo:

Não se esqueça de atualizar o ícone e o cache mime toda vez que você adicionar / remover ícones ou definições de tipo mime.

    
por 04.06.2015 / 16:31

Tags