Como altero o ícone para um tipo de arquivo específico?


42

Estou tentando alterar o ícone para application/x-hwparquivos. Eu adicionei os ícones nos lugares apropriados e o verifiquei com o associado (depois de ler este tópico ). Isso mostra que meu ícone desejado está associado ao tipo de arquivo. No entanto, o Nautilus ainda está mostrando o ícone antigo. Como posso fazer o Nautilus mostrar o ícone correto?



@Rinzwind: Obrigado. Infelizmente, esse link resolve um problema diferente. É baseado na alteração dos ícones de arquivos individuais. Quero alterar o ícone padrão para todos os arquivos de um determinado tipo.
9789 Scott's

Você está usando um tema de ícone personalizado? Isso pode estar interferindo no ícone que deve aparecer.
RBurgundy

Estou usando o tema do ambiente de ações. De qualquer forma, isso não deve importar, porque, pelo que sei, nenhum tema de ícone cobre esse tipo de arquivo. Estou recebendo o ícone que aparece por padrão quando o Nautilus não sabe qual outro ícone exibir. Além disso, os temas dos ícones são hierárquicos; portanto, se um ícone apropriado não puder ser encontrado no tema atual, a hierarquia será pesquisada, culminando com o tema hicolor. Meus ícones são instalados nos temas ubuntu0mono-dark e hicolor.
Scott Severance

Respostas:


22

Aqui está um conjunto de instruções que devem fornecer um ícone personalizado para arquivos hwp.

Abra um terminal:

  • Verifique se o tipo MIME existe: grep 'hwp' /etc/mime.types

    se você obtiver uma saída semelhante, application/x-hwp hwppule a próxima etapa.

  • Crie o tipo MIME sudo -H gedit /etc/mime.typese adicione a linhaapplication/x-hwp hwp

  • Adicione o ícone (que deve ser chamado application-x-hwp.svg) :

    sudo cp PathToIcon/application-x-hwp.svg /usr/share/icons/gnome/scalable/mimetypes
    

    (não esqueça de substituir o PathToIcon)

Peguei as informações daqui


Obrigado pela sugestão. Ainda não tive a chance de testá-lo completamente (até agora, sem sucesso), mas estou concedendo a recompensa porque as outras sugestões não funcionaram e não terei mais chance de trabalhar nisso antes a recompensa expira.
Scott Severance

Talvez você deva verificar se o tema do seu ícone é herdado do gnome (a maioria dos temas de ícones). Você vai encontrar essa informação em index.theme localizado no diretório do seu jogo do ícone
danjjl

Você também precisa verificar ~/.local. Por exemplo ~/.local/share, o que imita a pasta /usr/local/share. Seu aplicativo instalado localmente (ou seja, aplicativo apenas para você, e não outros logins), pode ter suas propriedades lá. Edite arquivos semelhantes, por exemplo,~/.local/share/icons/XXXX/XXXX
Robin Hsu

@danjjl: O que você quer dizer com (não se esqueça de substituir o PathToIcon)?
JoKalliauer

11
@JoKalliauer no comando para copiar o ícone /usr/share/... . Eu me refiro a PathToIcon. Isso precisa ser substituído pelo caminho para o ícone no seu PC. (se você acha que isso poderia ser formulado com mais clareza, não hesite em propor uma edição)
danjjl

14

O truque principal é descobrir corretamente onde os ícones reais estão localizados.
Para determinar isso, vamos analisar os ícones HTML. A convenção de nomenclatura para os ícones é a mesma do tipo MIME, /é substituída apenas por -e não é permitida nenhuma letra maiúscula. Ou seja, tipo MIME, digamos, text/x-changelogterá o ícone nomeado text-x-changelog.svg(ou png). O tipo MIME para HTML é text/html. Portanto, seu ícone será text-html.*Se executarmos o comando

find /usr/share/icons/ -type f | grep 'text-html\.'

teremos vários lugares onde esses ícones são colocados:

/usr/share/icons/Humanity/mimes/
/usr/share/icons/gnome/NNxNN/mimetypes/
/usr/share/icons/HighContrast/scalable/mimetypes/

Se visitarmos cada um deles com o Nautilus, veremos, essa Humanity/pasta contém nossos ícones atuais, gnome/alguns mais antigos. HighContrast/não nos interessa. Portanto, para alterar algum ícone, devemos substituir os ícones localizados na Humanity/pasta.
Observe também que os text-html.svgícones escalonáveis ​​e que deveriam ter sido colocados na scalablesubpasta (que deveriam ser lógicos) são colocados nas pastas para tamanhos diferentes, da mesma maneira que os arquivos PNG de varredura.

Após a substituição dos ícones (em todas as subpastas de acordo com seus tamanhos) pelos desejados, o cache de ícones deve ser atualizado:

sudo gtk-update-icon-cache /usr/share/icons/Humanity

É isso aí.

Há outra maneira de determinar a precedência dos esquemas de ícones - para verificar seus index.themearquivos. Se olharmos para dentro /usr/share/icons/Humanity/index.theme, veremos:

Inherits=gnome,hicolor

Isso significa que os ícones de gnomee hicolorpastas terão menos precedência do que os de Humanity. Isso é explicado aqui .
Curiosamente, o Nautilus não obedece a essas regras de herança. Quando eu adicionei novo tipo MIME, eu tentei colocar seus ícones para /usr/share/icons/gnome/, /usr/share/icons/hicolor, ~/.local/share/icons/hicolor, banco de dados ícone de atualização em cada etapa - tudo em vão. Esses ícones foram exibidos corretamente na assogiateprimeira guia, mas nunca no Nautilus. Mas quando os coloquei na Humanitypasta e no banco de dados atualizado de ícones, eles apareceram de uma só vez.

NB Tudo isso se aplica ao tema padrão dos ícones. Se você usar algum tema de ícone personalizado, verifique onde os ícones reais estão localizados e adicione / altere ícones lá. Também nas distribuições mais recentes, essas regras de herança podem mudar. Em seguida, você deve localizar a nova pasta que armazena os ícones reais (se não for Humanitymais), conforme explicado anteriormente.


Você também precisa verificar ~/.local. Por exemplo ~/.local/share, o que imita a pasta /usr/local/share. Seu aplicativo instalado localmente (ou seja, aplicativo apenas para você, e não outros logins), pode ter suas propriedades lá. Edite arquivos semelhantes, por exemplo,~/.local/share/icons/XXXX/XXXX
Robin Hsu

0

Espero que você tenha tentado sair e fazer login para atualizar o cache de ícones.

Veja também se o ícone está disponível no tamanho adequado (aquele que você está usando para exibir o tipo de arquivo no nautilus).

Você também pode ter perdido a corrida gtk-update-icon-cache.

Experimente este tutorial: http://swik.net/Ubuntu/Only+Ubuntu/How+To+Change+File-Type+(mimetype)+Icons+in+Ubuntu/chcrf

Tente criar manualmente o icon.theme, eis um exemplo que tenho do awn:

[Icon Theme]
Name=awn-theme

Directories=scalable

[scalable]
Size=48
MaxSize=256
Context=Apps
Type=Scalable

O manual está aqui: http://live.gnome.org/GnomeArt/Tutorials/IconThemes


Instalei um ícone de 48x48 e configurei o Nautilus para 100%, que usa 48x48. Sem dados. Voltar a fazer login não faz diferença. Correr gtk-update-icon-cachenão tem efeito.
Scott Severance

Atualizei minha resposta, ajudou?
Chris Hasiński 8/08

Não criei manualmente um tema de ícone, porque não quero um novo tema. Eu só quero que o ícone entre no tema hicolor, porque essa é a base de todos os temas de ícones. Criar um novo tema derrotará meu objetivo.
Scott Severance

-2

1)

 sudo apt-get install assogiate

siga este bom tutorial com boas fotos

http://lordamit.blogspot.com/2010/07/change-file-type-icons-mime-type-icons.html


2)

Se o tipo de arquivo não for detectado corretamente ou se estiver mostrando um tipo de arquivo incorreto, encontre os caracteres de identificação do tipo de arquivo

EX: rar, acesse http://filext.com/file-extension/rar

identificador "Hex: 52 61 72 21 1A 07 00, ASCII: Rar!"

abra o arquivo em uma bênção ou em qualquer editor hexadecimal e encontre o identificador e o deslocamento (onde suas palavras-chave começam)

no nosso caso, o primeiro bit então o deslocamento é "0".

Em seguida, vá em "Editor de tipos de arquivo" edite ou crie um novo item e selecione editar e, em Conteúdo do arquivo

selecione "string" no menu suspenso, insira "Rar!" e defina o deslocamento "0".

Feito


3
Como observei na minha pergunta original, o assogiate não funciona.
9788 Scott Schaffer #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.