Comment puis-je modifier ou définir l'icône d'un fichier ou d'un dossier dans le terminal ? Dois-je utiliser un langage de script ?
Réponses
Trop de publicités?Vous devez installer les outils du développeur, et la méthode suivante pourrait fonctionner. Cela prend le graphique dans icon.png
et l'applique à file.ext
.
# Take an image and make the image its own icon:
sips -i icon.png
# Extract the icon to its own resource file:
/Developer/Tools/DeRez -only icns icon.png > tmpicns.rsrc
# append this resource to the file you want to icon-ize.
/Developer/Tools/Rez -append tmpicns.rsrc -o file.ext
# Use the resource to set the icon.
/Developer/Tools/SetFile -a C file.ext
# clean up.
rm tmpicns.rsrc
# rm icon.png # probably want to keep this for re-use.
Avec le bénéfice de plusieurs années de recul :
La réponse de user588 y La réponse de koiyu fonctionnent bien, mais ils reposent sur des utilitaires ( Rez
, DeRez
et SetFile
) que :
- ne sont pas installés par défaut (ils sont fournis avec Xcode ou les utilitaires de ligne de commande pour les développeurs).
- sont désormais dépréciés (
Rez
yDeRez
parce qu'ils sont liés au carbone)
osxiconutils semblent intéressants, mais ne compile plus (à partir de MacOS 10.10.4) .
J'ai donc créé CLI fileicon
qui devrait fonctionner sur une machine OSX vierge (pas de prérequis) il s'agit d'un script Bash basé principalement sur xattr
, xxd
et un script Python intégré qui appelle Cocoa, avec l'aimable autorisation de cette réponse utile .
Il permet définir/supprimer/extraire des icônes personnalisées pour/depuis des fichiers ou des dossiers y compris sur les volumes APFS sous MacOS 10.13 (High Sierra).
Vous pouvez l'installer comme suit :
-
Si vous avez Homebrew installé :
brew install fileicon
-
Si vous avez installé Node.js, à partir du registre npm avec
[sudo] npm install -g fileicon
-
Autrement :
- Télécharger le CLI comme
fileicon
(ce lien restera d'actualité). - Rendez-le exécutable avec
chmod +x fileicon
.- Déplacez-le ou faites un lien symbolique vers un dossier dans votre dossier
$PATH
comme/usr/local/bin
(nécessitesudo
).
- Déplacez-le ou faites un lien symbolique vers un dossier dans votre dossier
- Télécharger le CLI comme
Voici les informations relatives à l'utilisation ; pour des informations complètes, reportez-vous aux manuel :
$ fileicon -h
Set a custom icon for a file or folder:
fileicon set <fileOrFolder> <imageFile>
Remove a custom icon from a file or folder:
fileicon rm <fileOrFolder>
Get a file or folder's custom icon:
fileicon get [-f] <fileOrFolder> [<iconOutputFile>]
Test if a file or folder has a custom icon:
fileicon test <fileOrFolder>
-q ... silence status output
Standard options: --help, --man, --version, --home
I presque a lancé une prime sur ce sujet, car je n'ai pas réussi à changer l'icône d'une dossier en utilisant @ mankoff 's respuesta . Mais j'ai trouvé une solution.
Pour changer l'icône du dossier, il ne faut pas pointer Rez -append tmp.rsrc
dans le dossier mais un [Icon\r](https://stackoverflow.com/q/4036104/216129)
dans le dossier. Si vous n'avez pas défini d'icône personnalisée pour ce dossier auparavant, le fichier n'existera probablement pas, mais Rez
le crée à la volée. La suppression de la Icon\r
supprimera l'icône personnalisée, donc pour éviter les accidents, il est bon de la cacher.
Ce sont les modifications apportées à la réponse de Mankoff :
# Append a resource to the folder you want to icon-ize.
Rez -append tmpicns.rsrc -o $'myfolder/Icon\r'
# Use the resource to set the icon.
SetFile -a C myfolder/
# Hide the Icon\r file from Finder.
SetFile -a V $'myfolder/Icon\r'
En plus de Ruby, voici une version Python :
#!/usr/bin/env python
import Cocoa
import sys
Cocoa.NSWorkspace.sharedWorkspace().setIcon_forFile_options_(Cocoa.NSImage.alloc().initWithContentsOfFile_(sys.argv[1].decode('utf-8')), sys.argv[2].decode('utf-8'), 0) or sys.exit("Unable to set file icon")
./set-image.py image.png myfile
Python qui est préinstallé dans Mac OS possède déjà PyObjC, vous n'avez donc pas besoin d'installer de paquet.
Vérifiez setfileicon
(code source) un utilitaire créé par Damien Bobillot.
Téléchargez le binaire ici : http://maxao.free.fr/telechargements/setfileicon.gz
Après avoir décompressé le fichier, rendez-le exécutable :
chmod +x setfileicon
Vous pouvez ensuite l'utiliser comme suit :
./setfileicon "my-icon.icns" "my-file-or-directory"
- Réponses précédentes
- Plus de réponses