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

8

Eu gostaria de alterar os ícones de vários arquivos do terminal.
Não são ícones de iniciador, mas os ícones padrão para tipos de arquivos, com base nos finais de arquivo.
Como conseguir essa tarefa?

    
por karthick87 02.05.2011 / 11:22

1 resposta

9

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

Então você precisa de gvfs-bin para que seja possível 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 {icon} como {filename} ou {folder}, use:

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

Exemplo:

Eu criei pastas 1, 2, 3, 4 em ~ / Music.

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 o 1 e 2 para um arquivo de vídeo existente ou qualquer outro arquivo real e ele deve funcionar da mesma forma.

e F5 atualizam o painel inferior.

Como você pode adivinhar no diretório 3 e 4, você precisará fazer isso para cada arquivo para o qual deseja fazer isso.

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

#!/usr/bin/python

import os
from os.path import join

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

for root, dirs, files in os.walk(cwdir):
    for name in files:
        if name.lower().find('.png') != -1:
            os.system('gvfs-set-attribute "'+root+'" metadata::custom-icon "'+name+'"')

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

uso do script por conta própria

    
por Rinzwind 27.05.2011 / 19:07