web-dev-qa-db-fra.com

Changer l'icône de dossier de plusieurs dossiers (films)

Comment puis-je changer les icônes de nombreux dossiers?

Comment définir la première image de tous les dossiers en tant qu'icônes de dossiers?

Je suis ici mais ça ne marche pas pour moi. Parce que mes films ne sont pas dans la partition de base, ils se trouvent dans une autre partition ext4 et lorsque j'essaie d'indiquer l'emplacement de cette partition dans cette commande, cela ne fonctionne tout simplement pas, car cela met automatiquement /home/sumeet devant l'emplacement que je tape.

Les scripts du second article ne fonctionnent pas! Peut-être que je fais quelque chose de mal.

[EDIT 2 DETAILED]

{ while read -r d ; do [ -d "$d" ] && [ -e "$d/folder.png" ] || continue ; gvfs-set-attribute -t string "$d" metadata::custom-icon "file://$d/folder.png" ; done ; } < <(find ~/mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I -mindepth 1 -maxdepth 1 -type d)

J'ai lancé cette commande en premier à partir du premier post, ce qui m'a donné une sortie

find: ‘/home/sumeet/mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I’: No such file or directory

Ensuite, j'ai déplacé certains des fichiers vers home/videos/films comme suggéré dans le message d'origine et ai exécuté cette commande

{ while read -r d ; do [ -d "$d" ] && [ -e "$d/folder.png" ] || continue ; gvfs-set-attribute -t string "$d" metadata::custom-icon "file://$d/folder.png" ; done ; } < <(find ~/Videos/Films -mindepth 1 -maxdepth 1 -type d)

Ce qui a parfaitement fonctionné, mais je ne peux pas déplacer toute ma collection de films dans un dossier personnel.

Ensuite, j'ai essayé la solution dans le 2e post mentionné et ai couru

python3 /home/sumeet/change_icon.py </mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I>

Et j'ai eu cette sortie

bash: syntax error near unexpected token `newline'

Puis j'ai pensé, j'ai fait quelque chose de mal et essayé cela

python3 /home/sumeet/change_icon.py /mnt/c2104e2a-cc8e-4b7b-9bba-a05d316472b4/I

N'a pas eu de sortie mais cela n'a pas fonctionné non plus.

Ensuite, j'ai essayé le deuxième script 3 ou 4 fois. Un clic droit est apparu, mais cela n'a pas fonctionné et j'ai tout fait à la fois. Je me suis déconnecté, reconnecté, j'ai essayé de redémarrer, -q nautilus

Ne semble pas fonctionner.

2
Sumeet Deshmukh

Ce script a été écrit par Jacob Vlijm et a été posté à l'origine ici .

#!/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))
                  ])

Utiliser

  1. Créer, s'il n'existe pas encore, le répertoire

    ~/.local/share/nautilus/scripts
    
  2. Copiez le script dans un fichier vide, enregistrez-le dans ~/.local/share/nautilus/scripts sous le nom de set_foldericons (sans extension!), Faites un clic droit et accédez aux propriétés du fichier et rendez-le exécutable .

  3. Déconnectez-vous et revenez, cela fonctionne.

Si vous souhaitez masquer toutes les icônes de dossiers (afin de ne pas présumer accidentellement qu'ils sont des dossiers), ajoutez un . au début des noms de fichiers, par exemple folder.png devient .folder.png

all set, with one script

Travail original

6
Sumeet Deshmukh