Alterar o ícone da pasta de várias pastas, álbuns de música [duplicados]

3

Para alterar o ícone da pasta, basta clicar com o botão direito do mouse em uma pasta, selecionar Propriedades , clicar no ícone da pasta, navegar para escolher o ícone da pasta , selecionar e pronto!

Mas se você tiver que fazer isso em centenas de pastas, isso seria uma dor. O que eu quero é uma maneira mais curta de fazer o mesmo. Como um atalho que automaticamente selecionaria a tela da imagem ou qualquer coisa para torná-la livre de problemas.

Cada pasta tem uma imagem dentro dela chamada "album art.jpeg" ou "cover art.jpg" ou algo parecido.

    
por Sundar Labhar 10.05.2017 / 18:26

3 respostas

3

Existem duas maneiras de alcançar o que você deseja. O primeiro é meramente um atalho

tudo que você precisa fazer é clicar na pasta e clicar em Ctrl + I , que o levará para a tela de propriedades. saltando 2 etapas em sua operação descrita. Isso é lógico para algumas pastas, mas se você está falando sobre 100 de pastas, então eu sugiro que você vá com a segunda abordagem

O segundo caminho é um pouco complicado. Ele adiciona uma opção de clique com o botão direito do mouse no nautilus (seu aplicativo de arquivos) para definir o ícone de pasta para todos os diretórios atuais em um único clique. Vai escolher a primeira imagem encontrada na pasta como ícone da pasta.

Este script foi escrito por Jacob Vlijm e foi originalmente publicado aqui .

Abra o editor de texto gedit e cole o script na página de gedit em branco.

  
#!/usr/bin/env python3
import subprocess
import os

# --- set the list of valid extensions below (lowercase)
# --- use quotes, *don't* include the dot!
ext = ["jpg", "jpeg", "png", "gif", "icns", "ico"]
# ---

# retrieve the path of the targeted folder
current = os.getenv("NAUTILUS_SCRIPT_CURRENT_URI").replace("file://", "").replace("%20", " ")
dr = os.path.realpath(current)

for root, dirs, files in os.walk(dr):
    for directory in dirs:
        folder = os.path.join(root, directory)
        try:
            first = min(p for p in os.listdir(folder) 
                        if p.split(".")[-1].lower() in ext)
        except ValueError:
            pass
        else:
              subprocess.Popen([
                  "gvfs-set-attribute", "-t", "string",
                  os.path.abspath(folder), "metadata::custom-icon",
                  "file://"+os.path.abspath(os.path.join(folder, first))
                  ])
  • Ao salvar, selecione este caminho para salvar este arquivo recém-criado, /home/sundar/.local/share/nautilus/scripts
  • Mantenha o nome do arquivo como set_foldericon sem extensão
  • Agora abra seu aplicativo de arquivos (nautilus) e vá para /home/sundar/.local/share/nautilus/scripts
  • Você deve ver um arquivo chamado set_foldericon
  • Agora clique com o botão direito no arquivo, selecione Propriedades , em seguida, selecione Permissões e clique em Permitir a execução do arquivo como programa
  • Agora faça logout e faça login novamente
  • Agora vá para a pasta onde seus álbuns de música estão armazenados
  • Clique com o botão direito do mouse em uma pasta para ver a segunda opção como Scripts , selecione a opção chamada Definir o ícone da pasta
  • Recarregue pressionando F5
  • Seus álbuns devem ter artes de capa agora

    
por Sumeet Deshmukh 10.05.2017 / 18:28
3

Para um único diretório

Para definir o ícone de um arquivo ou diretório, use o seguinte comando

gvfs-set-attribute -t string <PATH> metadata::custom-icon <IMAGE-URL>

em que <PATH> é o caminho para o arquivo ou diretório e <IMAGE-URI> é um URI para um arquivo de imagem a ser usado como ícone. Para usar um arquivo de imagem local, use o esquema file: , e. g. file:///home/sundar/my-icon.png .

Para vários diretórios com o mesmo ícone

Agora, para aplicar isso a vários arquivos ou diretórios, você pode usar um comando loop para executar o programa acima várias vezes:

for p in <PATHS...>; do
  gvfs-set-attribute -t string "$p" metadata::custom-icon <IMAGE-URL>
done

Como é um pouco complicado digitar todo o comando toda vez que você deseja atribuir alguns ícones, é possível criar um script de shell e salvá-lo em um arquivo, e. g. ~/.local/bin/set-custom-icon.sh :

#!/bin/sh
set -eu
case "" in
  *://*) icon="";;
  /*) icon="file://";;
  *) icon="file://$(readlink -e -- "")";;
esac
shift
for p; do
  gvfs-set-attribute -t string "$p" metadata::custom-icon "$icon"
done

Defina a permissão de execução no arquivo

chmod +x ~/.local/bin/set-custom-icon.sh

Agora você pode usar o script assim:

~/.local/bin/set-custom-icon.sh <IMAGE> <PATHS...>

Para vários diretórios com diferentes, automaticamente ícones selecionados

Podemos estender este comando para selecionar um arquivo de ícone diferente para cada diretório, já que há um padrão simples entre os dois.

for p in <PATHS...>; do
  icon="$(find "$p" -mindepth 1 -maxdepth 1 \( -iname 'album*' -o -iname 'cover*' \) -a \( -iname '*.jp[eg]' -o -iname '*.jpeg' -o -iname '*.png' \) -type f -print -quit)"
  [ -z "$icon" ] || gvfs-set-attribute -t string "$p" metadata::custom-icon "file://$(readlink -e -- "$icon")"
done

Para cada caminho, $p , encontrará um arquivo normal diretamente abaixo de $p cujo nome começa com album ou cover e termina com .jpg , .jpe , .jpeg ou .png (todos insensíveis a maiúsculas e minúsculas) se tal arquivo existir. Se vários arquivos correspondentes a esse padrão existirem, um arbitrário será escolhido.

Se tal arquivo existir, ele será definido como o ícone do diretório $p .

Para vários diretórios com diferentes, manualmente ícones selecionados

Podemos fazer isso com um script que abre um diálogo de arquivo para solicitar uma localização de ícone repetidamente e sem mais interação do usuário:

for p in <PATHS...>; do
  icon="$(zenity --file-selection --title="Select icon for $p" --file-filter='Supported images | *.jp[eg] *.jpeg *.png *.gif *.svg *.xpm' --file-filter='All files | *')" || break
  gvfs-set-attribute -t string "$p" metadata::custom-icon "$icon"
done

(requer o pacote zenity )

    
por David Foerster 10.05.2017 / 18:59
1

Existe um aplicativo chamado CoverThumbnailer que faz exatamente o que o OP quer. Qualquer jpg ou png chamado "capa" ou "pasta" será escolhido como a imagem em miniatura. Funciona em qualquer pasta, não apenas música

sudo add-apt-repository ppa:flozz/flozz
sudo apt-get update
sudo apt-get install cover-thumbnailer
    
por mightyjazzman 11.05.2017 / 08:17