Como alterar os ícones de vários arquivos do terminal?

9

Gostaria de alterar os ícones de vários arquivos do terminal.
Não são ícones do iniciador, mas os ícones padrão para tipos de arquivos, com base nas terminações do arquivo.
Como conseguir essa tarefa?

karthick87
fonte
Você quer dizer com o botão direito do mouse -> Propriedades no gerenciador de arquivos?
Dv3500ea
Os ícones do iniciador, ou os ícones padrão para tipos de arquivos, baseiam-se nas terminações do arquivo?
Johanna Larsson
Sim, eu quero mudar os ícones de vários arquivos em um ícone.
Karthick87 2/11
Não ícones do iniciador, ícones padrão para tipos de arquivo.
Karthick87 2/11

Respostas:

10

"emblemas" são armazenados como binários no diretório ~/.local/share/gvfs-metadata.

Então você precisa do gvfs-bin Instale o gvfs-bin para que possa extraí-los e salvá-los. Ah, e há um arquivo por partição / volume / diretório / arquivo (para piorar as coisas).

Para obter informações sobre um emblema, você pode usar:

gvfs-info -a metadata::emblems {filename|folder}

Para definir um {ícone} para um {nome do arquivo} ou {pasta}, você usa:

gvfs-set-attribute -t stringv {filename|folder} metadata::emblems {icon}

Exemplo:

Criei as pastas 1, 2, 3, 4 em ~ / Music.

im1

Comandos dentro do terminal da imagem:

gvfs-set-attribute 1 metadata::custom-icon file:///usr/share/pixmaps/gnome-log.png

gvfs-set-attribute 2 metadata::custom-icon file:///usr/share/pixmaps/gnome-spider.png

Altere 1 e 2 para um arquivo de vídeo existente ou qualquer outro arquivo real e deve funcionar da mesma maneira.

e F5 atualiza o painel inferior.

Como você pode adivinhar nos diretórios 3 e 4, será necessário fazer isso para cada arquivo que você deseja.

Aqui está um script que percorre um diretório e define um PNG que reside na pasta como emblema das pastas (basicamente isso imita o método do Windows de usar folder.pngcomo emblema do diretório acima dele).

#! / usr / bin / python

importação os
da junção de importação os.path

cwdir = str (os.popen ('pwd'). readline ()). replace ('\ n', '')

para root, dirs, arquivos no os.walk (cwdir):
    para o nome nos arquivos:
        Se name.lower (). find ('. png')! = -1:
            os.system ('gvfs-set-attribute "' + root + '" metadados :: ícone personalizado "' + nome + '"')

Você pode mudar isso para sua própria versão que inclui arquivos.

uso de script por conta e risco

Rinzwind
fonte