Como posso alterar programaticamente o ícone de um arquivo?

14

Se eu selecionar um ícone no Nautilus e selecionar Propriedades, posso clicar no ícone apresentado lá. Isso me dá uma caixa de diálogo de seleção de arquivos para selecionar uma nova imagem de ícone.

Eu gostaria de fazer isso por meio de um script de algum tipo, para que eu possa atribuir o mesmo ícone a vários arquivos de uma só vez. Ou pegue uma lista de ícones e uma lista de arquivos e atribua-os um ao outro.

Existe alguma maneira de conseguir isso? Algo no bash ou no Python seria ótimo, mas vou pegar o que puder.

Por favor, note:

  • Não estou perguntando como alterar o ícone de um tipo de arquivo.
  • Não estou perguntando como alterar um ícone no inicializador.

    
por Kris Harper 15.11.2012 / 22:03

2 respostas

21


Para alterar esses ícones na linha de comando, você pode usar o seguinte comando:

gvfs-set-attribute -t string /path/to/your/file metadata::custom-icon file:///path/to/your/icon.png

Você pode usar este comando em um script bash de acordo com suas necessidades.

Se você executar o comando e o ícone não mudar imediatamente, você poderá instalar o pacote xautomation com:

sudo apt-get install xautomation

E, finalmente, use o comando "xte" para "sendkey" no bash como "F5" para atualizar ..
Um pequeno exemplo seria:

#!/bin/bash
gvfs-set-attribute -t string /home/hermes/testicon metadata::custom-icon file:///home/hermes/Desktop/applet_blank.png
sleep 3
xte "key F5"  

Espero que isso seja útil para você.

    
por Roman Raguet 20.11.2012 / 01:29
2

A resposta de Roman parece ideal. Há outro caminho menos elegante. Não tenho certeza de onde os ícones vivem no resto do sistema, mas os ícones que estão no seu Desktop são apenas pequenos arquivos de texto simples no $ HOME / Desktop. Eles geralmente (mas não precisam) têm a extensão do .desktop. Um dos campos nesses arquivos é o ícone = .... Você pode usar um programa para alterar qualquer que seja o campo definido para o valor de sua escolha. (Você pode ter que fazer uma atualização depois de fazer isso, como sugere Roman).

Quando eu quero usar um ícone para outra coisa ou em outro sistema, às vezes eu olho nesses arquivos .desktop para descobrir o nome do ícone em uso.

As especificações desses arquivos estão em: link

Joe

    
por Joe 21.11.2012 / 19:31