Піктограми для типів файлів обробляються послугами Launch Services (сервісом, серед іншого, визначає, яка програма обробляє тип файлу). Піктограма файлу завжди надається програмою, що відкриває файл за замовчуванням. Таким чином, наприклад, попередній перегляд надає піктограми PDF за замовчуванням та піктограми PNG, але якщо ви зміните всі файли PNG для відкриття за допомогою Pixelmator, ці файли отримують піктограму піксельматорського стилю.
Що потрібно зробити, це додати визначення типу файлу до програми, яка відкриває його за замовчуванням, або створити власний "фіктивний" додаток для типу файлу .
Як приклад, моя система ще не знає про це .scala
, і я хочу TextMate
з цим впоратися.
По- перше, я Show Package Contents з TextMate.app
, перейдіть Contents/
і відкриті Info.plist
, або за допомогою текстового редактора, або Property List Editor
, частина інструментів розробника Apple.
TextMate використовує незвичайний формат для Info.plist
(зазвичай це двійковий або XML), уривок якого виглядає приблизно так:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
Батьківський ключ CFBundleDocumentTypes
- це те, що ми хочемо. Перший дочірній елемент його, укладений у фігурні фігурні дужки, містить визначення типу файлу, доповненого іменем (для стовпця типу файлу в Finder), розширеннями файлів та назвою файлу значків ( ADA
для TextMate.app/Contents/Resources/ADA.icns
).
Для підтримки .scala
нам потрібно додати елемент близнюка, подібний до вищевказаного, під той же батьківський елемент CFBundleDocumentTypes
:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
},
Для простоти я використовую той самий файл значків, але ми можемо створити його самостійно, скопіювати його TextMate.app/Contents/Resources/SCALA.icns
та посилатися на нього як SCALA
у Info.plist
.
Тепер закрийте TextMate, якщо він працює, перенесіть програму TextMate.app
в іншу папку та відкрийте її знову. Закрийте його та перемістіть назад, а потім знову відкрийте. Це робиться для того, щоб послуги Launch Services вибирали зміни, які Info.plist
ми тільки що виконували.
Результат виглядає приблизно так (пам’ятайте, ми знову використовували піктограму TextMate Ada .scala
):
Якщо ви не хочете пов’язувати програму для відкриття .scala
файлів (не уявляєте, чому, але є спосіб зробити це): Змініть доповнення до файлу на наступне:
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
CFBundleTypeRole = "None";
},
Тепер додаток оголошує тип файлу, але повідомляє системі, що не знає, як з ним впоратися (Apple наводить приклад Finder, декларуючи типи шрифтів, хоча він не може їх відкрити сам).
* Зауважте, що будь-яке постійне призначення програми типу файлу перевершує піктограму, ймовірно, на тип "невідомий документ".
Якщо у вас вже є додаток, пов’язаний із цим .scala
, і ви просто хочете змінити значок файлу, не змінюючи відповідну програму:
Відкрийте програму Info.plist
, знайдіть запис типу файлу CFBundleDocumentTypes
та отримайте CFBundleTypeIconFile
. Змініть цей файл у, .../Contents/Resources/
і він повинен бути відображений у Finder незабаром після цього.
Інформація про бонус:
Як змінити піктограму одного документа чи папки на файл зображення
Припустимо, у вас є зображення, для ~/Desktop/test.png
якого ви хочете використовувати піктограму (це скріншот, який використовується вище, щоб проілюструвати .scala
зміну значка / TextMate / Ada.
Відкрийте /Applications/Utilities/Terminal.app
і введіть:
sips -i ~/Desktop/test.png
Це змінить test.png
значок файлу на його зображення. Оскільки я насолоджуюся рекурсією, давайте спробувати це:
Перед цим звичайний png
значок попереднього перегляду (попередній перегляд зображення відключений):
Після цього сам файл зображення - його попередній перегляд:
Тепер ми можемо відкрити діалогове вікно « Інформація про файл» , натиснути потрібний, майбутній значок документа у верхньому лівому куті, Cmd-C
скопіювати його, відкрити діалогове вікно « Інформація про файл документа» , натиснути небажаний, поточний значок документа у верхньому лівому куті та Cmd-V
вставити папку значок, який ми хочемо.
Ви також можете відкрити файл зображення, який ви хочете використовувати як піктограму в режимі попереднього перегляду, Cmd-A
щоб вибрати всі, Cmd-C
скопіювати зображення у буфер обміну. Потім відкрийте діалогове вікно " Інформація про цільовий документ" , виберіть піктограму, яку потрібно змінити у верхньому лівому куті, та Cmd-V
наклейте на неї зображення.