Como definir a primeira imagem de cada pasta como seu ícone de pasta?
A pergunta vinculada acima tem uma resposta que consiste em um script que está funcionando para mim. Só precisa de um pouco de melhoria.
O que isso faz?
Ele localiza arquivos com as extensões .jpg, .jpeg, .png, .gif, .icns, .ico e os define como o ícone da pasta na qual o arquivo foi encontrado. Funciona em várias pastas, recursivamente. Basicamente, ele tenta encontrar um arquivo de imagem dentro da pasta, e a primeira imagem encontrada é definida como um ícone de pasta. Funciona muito bem para muitos cenários, e configurar esse script geralmente é a primeira coisa que faço após a instalação nova (porque é incrível).
Qual é o problema?
Pode haver alguns diretórios que contêm muitos arquivos de imagem e o primeiro arquivo de imagem nesse diretório pode não ser adequado para ser o ícone da pasta.
O que deveria fazer?
Em vez de ser baseado em extensão, se ele se tornar baseado em nome de arquivo e direcionar um (por exemplo folder.png
) ou vários (por exemplo albumart.png
cover.png
) nomes de arquivos, esse problema poderá ser resolvido.
ou melhor ainda, fazer com que ambas as abordagens funcionem em um único script
- Localizar predefinido
filenames
- Se encontrado, defina-o como ícone da pasta e vá para a próxima pasta
- Se NÃO for encontrado, encontre a extensão predefinida, defina-a como ícone da pasta e vá para a próxima pasta
fonte
Respostas:
Eu ainda posso "elegante um pouco", mas abaixo estão as versões editadas das vinculadas.
Qual é a diferença?
Adicionei uma lista predefinida à seção principal:
e eu substituí:
por:
para que o script tente primeiro encontrar (arquivo) correspondências na lista
specs
, (somente) se não houver, ele pula para a busca pela extensão correspondente e executa o truque se encontrar uma imagem adequada.1. A versão básica
Para ser usado com o diretório de destino como argumento:
Como usar
change_icon.py
Execute-o com o diretório de destino como argumento:
É isso aí!
2. A opção editada com o botão direito do mouse, para ser usada como um script nautilus (clique com o botão direito do mouse)
Usar
Crie, se ainda não existir, o diretório
Copie o script em um arquivo vazio, salve-o
~/.local/share/nautilus/scripts
comoset_foldericons
(sem extensão!) E torne-o executável .Se, por algum motivo, você quiser redefinir os ícones dentro de uma pasta para os ícones padrão, use o script aqui
fonte
file://
. Em vez dereplace("%20", " ")
usar, você deve usar a decodificação URI adequada (por exemplourllib.parse.unquote
) e a codificação posterior (urllib.parse.quote
).subprocess.Popen
parasubprocess.call
mas em diretórios enormes com quase 700+ sub's, nem todos os ícones de pasta chnage.urllib.parse.quote
funciona bem em um teste "seco", não no script. Precisa descobrir o porquê, mas deixando a versão de trabalho do script por enquanto.unquote
como esperado?