Comment configurer une icône pour un type de fichier sur Mac?

Comment définir une icône pour certains types de fichiers pensait-on à l' ensemble du système?

Par exemple, j'ai des fichiers texte qui se terminent par l'extension .scala et je veux associer une icône pour ces fichiers à l'ensemble du système et à tout fichier nouvellement créé de cette extension.

Merci.

Les icônes pour les types de fichiers sont traitées par Launch Services (le service détermine, entre autres choses, 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, l'aperçu fournit des icônes PDF par défaut et des icônes PNG, mais si vous modifiez tous les fichiers PNG pour ouvrir à l'aide de Pixelmator, ces fichiers obtiennent ensuite une icône de type Pixelmator.

Ce que vous devez faire, c'est ajouter la définition de votre type de fichier à l'application qui l'ouvre par défaut ou créer votre propre application "fausse" pour le type de fichier .


À titre d'exemple, mon système ne connaît pas encore .scala , et je veux que TextMate le gère.

Tout d'abord, je montre le contenu du paquetage de TextMate.app , accédez à Contents/ et ouvrez Info.plist , avec un éditeur de texte ou Property List Editor , une partie des outils de développement d'Apple.

TextMate utilise un format inhabituel pour Info.plist (il est généralement binaire ou XML), dont un extrait ressemble à ceci:

 CFBundleDocumentTypes = ( { CFBundleTypeName = "ADA source"; CFBundleTypeExtensions = (adb, ads); CFBundleTypeIconFile = ADA; }, 

La clé principale CFBundleDocumentTypes est ce que nous voulons. Le premier élément enfant, entouré d'orthèses, contient une définition de type de fichier, avec le nom (pour la colonne de type de fichier dans le Finder), les extensions de fichier et le nom du fichier d'icône ( ADA pour TextMate.app/Contents/Resources/ADA.icns ).

Pour soutenir .scala , nous devons ajouter un élément de frère semblable à 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, copier dans TextMate.app/Contents/Resources/SCALA.icns et faire référence à SCALA dans Info.plist .

Maintenant, fermez TextMate s'il fonctionne, déplacez l'application TextMate.app dans un dossier différent et ouvrez-le à nouveau. Fermez-le, remettez-le, puis ouvrez-le encore. Ceci est fait, alors Launch Services reprend les modifications apportées à Info.plist nous venons d'effectuer.

Le résultat ressemble à ceci (rappelez-vous, nous avons réutilisé l'icône TextMate Ada pour .scala ):

Texte alt

Si vous ne souhaitez pas associer une application à ouvrir des fichiers .scala (ne peut pas imaginer pourquoi, mais il y a un moyen de le faire): Modifiez les ajouts au fichier à la suivante:

  { CFBundleTypeName = "Scala source"; CFBundleTypeExtensions = (scala); CFBundleTypeIconFile = ADA; CFBundleTypeRole = "None"; }, 

Maintenant, l'application déclare le type de fichier, mais indique au système qu'il ne sait pas comment le gérer (Apple donne l'exemple de Finder déclarant les types de police, bien qu'il ne puisse pas les ouvrir eux-mêmes).

* Notez que toute affectation d'application permanente au type de fichier remplace l'icône, probablement au type "document inconnu".


Si vous avez déjà une application associée à .scala , et que vous souhaitez simplement modifier l'icône du fichier sans modifier l'application associée:

Ouvrez le Info.plist de l'application, recherchez l'entrée de type de fichier dans CFBundleDocumentTypes et obtenez le CFBundleTypeIconFile . Modifiez ce fichier dans .../Contents/Resources/ et il devrait être reflété dans Finder peu de temps après.


Informations sur les bonus:

Comment changer l'icône d'un document ou d'un dossier en un fichier image

Supposons que vous ayez une image ~/Desktop/test.png que vous souhaitez utiliser une icône (c'est la capture d'écran utilisée ci-dessus pour illustrer la .scala l' .scala / TextMate / Ada.

Ouvrez /Applications/Utilities/Terminal.app et entrez:

 sips -i ~/Desktop/test.png 

Cela changera l'icône du fichier test.png sur son image. Puisque j'aime la récursivité, essayons ceci:

Avant, l'icône de prévisualisation simple de png (aperçu d'image est désactivée):

Texte alt

Après, le fichier image lui-même est son aperçu:

Texte alt

Maintenant, nous pouvons ouvrir la boîte de dialogue Obtenir l'information du fichier, cliquer sur l'icône de document souhaitée, en haut à gauche, Cmd-C pour la copier, ouvrir la boîte de dialogue Obtenir l'information du fichier document, cliquer sur l'icône de document non souhaitée, en haut à gauche, et Cmd-V pour coller l'icône que nous voulons.


Alternativement, vous pouvez ouvrir le fichier image que vous souhaitez utiliser comme icône dans Preview, Cmd-A pour sélectionner tout, Cmd-C pour copier l'image dans le presse-papiers. Ensuite, ouvrez la boîte de dialogue Obtenir l'information du document cible, sélectionnez l'icône à changer en haut à gauche et Cmd-V pour coller l'image.

La façon dont j'aborde toujours ceci est de trouver un fichier avec cette extension, cliquez avec le bouton droit de la souris sur "Obtenir de l'information", ou "Command-i", et cela créera le panneau d'information. En haut, consultez l'icône 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 faire une pâte pour la modifier.

Vous devez remplacer le fichier ICNS dans le programme qui est affecté comme programme par défaut pour le type de fichier spécifique.

1 – Créez une image pour l'icône souhaitée, puis enregistrez en tant que type de fichier png (png prend en charge la transparence).

2 – Convertissez le fichier png en un type de fichier icns (FastIcns est plutôt génial et gratuit).

3 – Cliquez sur CMD ou cliquez avec le bouton droit de la souris sur l'application définie comme l'application par défaut pour le type de fichier spécifique, puis sélectionnez Afficher le contenu du package.

4 – Recherchez le fichier icns que l'application désigne comme icône pour le type de fichier spécifique, il sera probablement dans un dossier appelé Ressources.

5 – Nommez le fichier icns que vous avez créé, 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ù vous souhaitez remplacer et choisissez le remplacement s'il vous plaît.

7 – Vous avez terminé! Toutes les icônes pour ce type de fichier ont été remplacées par la nouvelle icône souhaitée.