Comment définir une icône pour certains types de fichiers avec le système entier ?
Par exemple, j'ai des fichiers texte qui se terminent par l'extension .scala et je souhaite associer une icône à ces fichiers dans tout le système et à tout fichier récemment créé de cette extension.
Merci.
Les icônes des types de fichiers sont gérées par les services de lancement (le service détermine, entre autres, quelle application gère un type de fichier). L'icône du fichier est toujours fournie par l'application qui gère l'ouverture d'un fichier par défaut. De cette façon, par exemple Preview fournit par défaut les icônes PDF, ainsi que les icônes PNG, mais si vous modifiez l'ouverture de tous les fichiers PNG à l'aide de Pixelmator, ces fichiers reçoivent ensuite une icône de style Pixelmator.
Vous devez ajouter votre définition de type de fichier à l'application qui l'ouvre par défaut ou créer votre propre application factice pour le type de fichier.
Par exemple, mon système ne connaît pas encore .scala
et je veux que TextMate
le gère.
Tout d'abord, je affiche le contenu du paquetdu TextMate.app
, naviguez jusqu'au Contents/
et ouvrez le Info.plist
, soit avec un éditeur de texte, soit Property List Editor
, qui fait partie des outils de développement d'Apple.
TextMate utilise un format inhabituel pour Info.plist
(généralement binaire ou XML), dont l'extrait ressemble à ceci:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
La clé parente CFBundleDocumentTypes
est ce que nous voulons. Son premier élément enfant, entouré d'accolades, contient une définition de type de fichier, ainsi que son nom (pour la colonne de type de fichier dans le Finder), ses extensions et le nom du fichier icône (ADA
pour TextMate.app/Contents/Resources/ADA.icns
).
Pour prendre en charge .scala
, nous devons ajouter un élément frère similaire à celui ci-dessus, sous le même élément parent CFBundleDocumentTypes
:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
},
Par souci de simplicité, j'utilise le même fichier d'icônes, mais nous pouvons en créer un nous-mêmes, le copier dans TextMate.app/Contents/Resources/SCALA.icns
et le nommer SCALA
dans Info.plist
.
Maintenant, fermez TextMate s'il est en cours d'exécution, déplacez l'application TextMate.app
vers un autre dossier et ouvrez-le à nouveau. Fermez-le et replacez-le, puis ouvrez-le à nouveau. Ceci est fait afin que Launch Services prenne en compte les modifications apportées à Info.plist
que nous venons d'effectuer.
Le résultat ressemble à ceci (rappelez-vous, nous avons réutilisé l'icône TextMate Ada pour .scala
):
Si vous ne souhaitez pas associer une application pour ouvrir des fichiers .scala
(vous ne pouvez pas imaginer pourquoi, mais vous pouvez le faire de la manière suivante): Modifiez les ajouts au fichier comme suit:
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
CFBundleTypeRole = "None";
},
Désormais, l’application déclare le type de fichier, mais indique au système qu’elle ne sait pas comment le gérer (Apple donne l’exemple du Finder qui déclare les types de police, bien qu’il ne puisse pas les ouvrir lui-même).
* Notez que toute affectation d'application permanente au type de fichier remplace l'icône, probablement du type "document inconnu".
Si vous avez déjà une application associée à .scala
et que vous voulez simplement changer l'icône du fichier sans changer l'application associée:
Ouvrez le Info.plist
de l'application, recherchez l'entrée de type de fichier dans CFBundleDocumentTypes
et obtenez la CFBundleTypeIconFile
. Modifiez ce fichier dans .../Contents/Resources/
et il devrait apparaître dans le Finder peu de temps après.
Informations sur le bonus:
Comment changer l'icône d'un seul document ou dossier en un fichier image
Supposons que vous avez une image ~/Desktop/test.png
avec laquelle vous voulez utiliser une icône (c'est la capture d'écran utilisée ci-dessus pour illustrer le changement d'icône .scala
/TextMate/Ada.
Ouvrez /Applications/Utilities/Terminal.app
et entrez:
sips -i ~/Desktop/test.png
Cela changera l'icône du fichier test.png
en son image. Puisque j'apprécie la récursivité, essayons ceci:
Avant, l'icône simple Aperçu png
(l'aperçu de l'image est désactivé):
Après, le fichier image lui-même est son aperçu:
Nous pouvons maintenant ouvrir la boîte de dialogue Lire le fichierdu fichier, cliquer sur l'icône de document futur souhaitée en haut à gauche, Cmd-C
pour le copier, ouvrir le dossier du document.dialogue, cliquez sur l’icône de document en cours indésirable en haut à gauche, puis sur Cmd-V
pour coller l’icône souhaitée.
Vous pouvez également ouvrir le fichier image que vous souhaitez utiliser comme icône dans Aperçu, Cmd-A
pour tout sélectionner, Cmd-C
pour copier l’image dans le presse-papiers. Ouvrez ensuite la boîte de dialogue Lire les informationsdu document cible, sélectionnez l'icône à modifier en haut à gauche et Cmd-V
pour coller l'image dessus.
Vous devez remplacer le fichier ICNS dans le programme affecté en tant que programme par défaut pour le type de fichier spécifique.
1 - Créez une image pour l'icône souhaitée, puis enregistrez sous un type de fichier png (png prend en charge la transparence).
2 - Convertissez le fichier png en un type de fichier icns (FastIcns est vraiment génial et gratuit).
3 - Cliquez sur CMD ou cliquez avec le bouton droit de la souris sur l’application définie comme application par défaut pour le type de fichier spécifique, puis sélectionnez Afficher le contenu du package.
4 - Recherchez le fichier icns désigné par l’application comme étant l’icône du type de fichier en question. Il figurera probablement dans un dossier appelé Ressources.
5 - Nommez le fichier icns que vous avez créé, exactement le même nom de fichier que celui que vous souhaitez remplacer.
6 - Copiez et collez, ou faites glisser et déposez le nouveau fichier icns que vous avez créé dans le dossier où se trouve celui que vous souhaitez remplacer, puis choisissez remplacer lorsque l'option vous le donnera.
7 - Vous avez terminé! Toutes les icônes de ce type de fichier ont été remplacées par la nouvelle icône souhaitée.
Pour ce faire, je cherche toujours un fichier avec cette extension, faites un clic droit "Obtenir des informations ou Command-i, et cela affichera le panneau d’informations. En haut, vous voyez l'icône qui est actuellement utilisée pour l'image. Vous pouvez faire glisser un fichier image sur celui-ci pour le modifier ou, si vous avez copié l'image, vous pouvez cliquer sur l'image que vous souhaitez modifier et effectuer un collage pour le modifier.