Le icone per i tipi di file sono gestite da Launch Services (il servizio che determina, tra le altre cose, quale applicazione gestisce un tipo di file). L'icona del file è sempre fornita dall'applicazione che gestisce l'apertura di un file per impostazione predefinita. In questo modo, ad esempio Anteprima, vengono visualizzate le icone PDF per impostazione predefinita e le icone PNG, ma se si modificano tutti i file PNG per aprirli utilizzando Pixelmator, questi file ottengono successivamente un'icona in stile Pixelmator.
Quello che devi fare è aggiungere la definizione del tipo di file all'applicazione che lo apre per impostazione predefinita o creare la tua applicazione "fittizia" per il tipo di file .
Ad esempio, il mio sistema non lo sa ancora .scala
e voglio TextMate
gestirlo.
In primo luogo, mostro il contenuto del pacchettoTextMate.app
, navigo Contents/
e apro Info.plist
, con un editor di testo, o Property List Editor
, parte degli strumenti di sviluppo di Apple.
TextMate utilizza un formato insolito per Info.plist
(di solito è binario o XML), un estratto del quale è simile al seguente:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
La chiave principale CFBundleDocumentTypes
è ciò che vogliamo. Il primo elemento figlio, racchiuso tra parentesi graffe, contiene una definizione del tipo di file, completa di nome (per la colonna del tipo di file nel Finder), estensioni di file e nome del file icona ( ADA
per TextMate.app/Contents/Resources/ADA.icns
).
Per supportare .scala
, dobbiamo aggiungere un elemento fratello simile a quello sopra, sotto lo stesso elemento genitore CFBundleDocumentTypes
:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
},
Per semplicità, sto usando lo stesso file icona, ma possiamo crearne uno noi stessi, copiarlo TextMate.app/Contents/Resources/SCALA.icns
e fare riferimento ad esso come SCALA
in Info.plist
.
Ora chiudi TextMate se è in esecuzione, sposta l'applicazione TextMate.app
in un'altra cartella e aprila di nuovo. Chiudilo e spostalo indietro, quindi riaprilo di nuovo. Questo viene fatto in modo che Launch Services rilevi le modifiche che Info.plist
abbiamo appena eseguito.
Il risultato è simile al seguente (ricorda, abbiamo riutilizzato l'icona AdM di TextMate per .scala
):
Se non vuoi associare un'applicazione ad aprire .scala
file (non riesci a immaginare il perché, ma c'è un modo per farlo): modifica le aggiunte al file nel modo seguente:
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
CFBundleTypeRole = "None";
},
Ora, l'applicazione dichiara il tipo di file, ma dice al sistema che non sa come gestirlo (Apple fornisce l'esempio del Finder che dichiara i tipi di carattere, sebbene non possa aprirli da solo).
* Notare che qualsiasi assegnazione di applicazione permanente al tipo di file sovrascrive l'icona, probabilmente al tipo di "documento sconosciuto".
Se hai già un'applicazione associata .scala
e vuoi solo cambiare l'icona del file senza cambiare l'applicazione associata:
Apri l'applicazione Info.plist
, cerca la voce del tipo di file CFBundleDocumentTypes
e ottieni il file CFBundleTypeIconFile
. Modifica questo file .../Contents/Resources/
e dovrebbe riflettersi nel Finder poco dopo.
Informazioni sul bonus:
Come modificare l'icona di un singolo documento o cartella in un file di immagine
Supponiamo di avere un'immagine ~/Desktop/test.png
che desideri utilizzare un'icona (è lo screenshot usato sopra per illustrare la .scala
modifica dell'icona / TextMate / Ada.
Apri /Applications/Utilities/Terminal.app
e inserisci:
sips -i ~/Desktop/test.png
Questo cambierà l' test.png
icona del file nella sua immagine. Dal momento che mi piace la ricorsione, proviamo questo:
Prima, la semplice png
icona Anteprima (l'anteprima dell'immagine è disattivata):
Dopo, il file immagine stesso è la sua anteprima:
Ora possiamo aprire la finestra di dialogo Ottieni informazioni del file , fare clic sull'icona del documento futuro desiderata in alto a sinistra, Cmd-C
per copiarla, aprire la finestra di dialogo Ottieni informazioni del file di documento , fare clic sull'icona del documento corrente indesiderata in alto a sinistra e Cmd-V
incollare il icona che vogliamo.
In alternativa, è possibile aprire il file immagine che si desidera utilizzare come icona in Anteprima, Cmd-A
per selezionare tutto, Cmd-C
per copiare l'immagine negli Appunti. Quindi apri la finestra di dialogo Ottieni informazioni del documento di destinazione , seleziona l'icona da modificare in alto a sinistra e Cmd-V
incollaci sopra l'immagine.