Ikony typów plików są obsługiwane przez usługi uruchamiania (usługa określająca między innymi, która aplikacja obsługuje typ pliku). Ikona pliku jest zawsze dostarczana przez obsługę aplikacji domyślnie otwierającą plik. W ten sposób np. Preview udostępnia domyślnie ikony PDF i ikony PNG, ale jeśli zmienisz wszystkie pliki PNG, aby otworzyć je za pomocą Pixelmator, pliki te otrzymają później ikonę w stylu Pixelmator.
To, co musisz zrobić, to dodać definicję typu pliku do aplikacji, która ją domyślnie otwiera, lub utworzyć własną „obojętną” aplikację dla tego typu pliku .
Na przykład mój system jeszcze nie wie .scala
i chcę TextMate
sobie z tym poradzić.
Najpierw Pokaż Zawartość opakowania z TextMate.app
przejdź do Contents/
i otwarte Info.plist
, albo za pomocą edytora tekstu, lub Property List Editor
, część narzędzi Apple'a deweloperskich.
TextMate używa nietypowego formatu Info.plist
(zazwyczaj binarnego lub XML), którego fragment wygląda następująco:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
Klucz nadrzędny CFBundleDocumentTypes
jest tym, czego chcemy. Pierwszy element potomny, zawarty w nawiasach klamrowych, zawiera definicję typu pliku wraz z nazwą (dla kolumny typu pliku w Finderze), rozszerzeniami plików i nazwą pliku ikony ( ADA
dla TextMate.app/Contents/Resources/ADA.icns
).
Aby wesprzeć .scala
, musimy dodać element siostrzany podobny do powyższego, w ramach tego samego elementu nadrzędnego CFBundleDocumentTypes
:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
},
Dla uproszczenia używam tego samego pliku ikon, ale możemy go sami stworzyć, skopiować go TextMate.app/Contents/Resources/SCALA.icns
i odwołać się do niego jak SCALA
w Info.plist
.
Teraz zamknij TextMate, jeśli jest uruchomiony, przenieś aplikację TextMate.app
do innego folderu i otwórz go ponownie. Zamknij i przesuń z powrotem, a następnie otwórz ponownie. Dokonuje się tego, więc usługi uruchamiania wychwytują zmiany, Info.plist
które właśnie wykonaliśmy.
Wynik wygląda następująco (pamiętaj, że ponownie użyliśmy ikony TextMate Ada .scala
):
Jeśli nie chcesz kojarzyć aplikacji z otwartymi .scala
plikami (nie wyobrażasz sobie, dlaczego, ale jest na to sposób): Zmień dodatki do pliku na następujące:
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
CFBundleTypeRole = "None";
},
Teraz aplikacja deklaruje typ pliku, ale informuje system, że nie wie, jak sobie z tym poradzić (Apple podaje przykład Findera deklarującego typy czcionek, chociaż sam nie może ich otworzyć).
* Uwaga: każde trwałe przypisanie aplikacji do typu pliku zastępuje ikonę, prawdopodobnie do rodzaju „nieznanego dokumentu”.
Jeśli masz już powiązaną aplikację .scala
i po prostu chcesz zmienić ikonę pliku bez zmiany powiązanej aplikacji:
Otwórz aplikację Info.plist
, poszukaj wpisu typu pliku CFBundleDocumentTypes
i pobierz CFBundleTypeIconFile
. Zmodyfikuj ten plik, .../Contents/Resources/
a wkrótce potem powinien zostać odzwierciedlony w Finderze.
Informacje o bonusie:
Jak zmienić ikonę pojedynczego dokumentu lub folderu na plik obrazu
Załóżmy, że masz obraz, ~/Desktop/test.png
którego chcesz użyć ikony (to zrzut ekranu użyty powyżej, aby zilustrować .scala
zmianę ikony / TextMate / Ada.
Otwórz /Applications/Utilities/Terminal.app
i wprowadź:
sips -i ~/Desktop/test.png
Spowoduje to zmianę test.png
ikony pliku na obraz. Ponieważ lubię rekurencję, spróbujmy tego:
Wcześniej zwykła png
ikona podglądu (podgląd obrazu jest wyłączony):
Następnie sam plik obrazu jest jego podglądem:
Teraz możemy otworzyć okno dialogowe Pobierz informacje o pliku , kliknąć żądaną ikonę przyszłego dokumentu w lewym górnym rogu, Cmd-C
aby ją skopiować, otworzyć okno dialogowe Pobierz informacje o pliku , kliknąć niepożądaną, bieżącą ikonę dokumentu w lewym górnym rogu i Cmd-V
wkleić ikona, którą chcemy.
Alternatywnie możesz otworzyć plik obrazu, którego chcesz użyć jako ikony w Podglądzie, Cmd-A
aby wybrać wszystko, Cmd-C
aby skopiować obraz do schowka. Następnie otwórz okno dialogowe Uzyskaj informacje w dokumencie docelowym , wybierz ikonę, którą chcesz zmienić w lewym górnym rogu, i Cmd-V
wklej nad nią obraz.