Je voudrais changer les icônes de plusieurs fichiers depuis le terminal.
Pas des icônes de lancement, mais des icônes par défaut pour les types de fichiers, en fonction des fins de fichier.
Comment réaliser cette tâche?
Je voudrais changer les icônes de plusieurs fichiers depuis le terminal.
Pas des icônes de lancement, mais des icônes par défaut pour les types de fichiers, en fonction des fins de fichier.
Comment réaliser cette tâche?
Réponses:
les "emblèmes" sont stockés sous forme de fichiers binaires dans le répertoire ~/.local/share/gvfs-metadata
.
Vous avez donc besoin de gvfs-bin pour cela afin de pouvoir les extraire et les enregistrer. Oh et il y a un fichier par partition / volume / répertoire / fichier (pour aggraver les choses).
Pour obtenir des informations sur un emblème, vous pouvez utiliser:
gvfs-info -a metadata::emblems {filename|folder}
Pour définir une {icône} pour un {nom de fichier} ou {dossier}, vous utilisez:
gvfs-set-attribute -t stringv {filename|folder} metadata::emblems {icon}
Exemple:
J'ai créé les dossiers 1, 2, 3, 4 dans ~ / Musique.
Commandes à l'intérieur du terminal de l'image:
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
Remplacez 1 et 2 par un fichier vidéo existant ou tout autre fichier réel et cela devrait fonctionner de la même manière.
et F5 met à jour le panneau inférieur.
Comme vous pouvez le deviner à partir des répertoires 3 et 4, vous devrez le faire pour chaque fichier pour lequel vous le souhaitez.
Voici un script qui parcourt un répertoire et définit un PNG qui réside dans le dossier comme emblème des dossiers (en gros, cela imite la méthode Windows d'utilisation folder.png
comme emblème du répertoire au-dessus).
#! / usr / bin / python importer os depuis os.path import join cwdir = str (os.popen ('pwd'). readline ()). replace ('\ n', '') pour root, dirs, fichiers dans os.walk (cwdir): pour le nom dans les fichiers: si name.lower (). find ('. png')! = -1: os.system ('gvfs-set-attribute "' + root + '" metadata :: custom-icon "' + name + '"')
Vous pourrez peut-être le modifier dans votre propre version qui inclut des fichiers.
utilisation du script à vos risques et périls