Launch Services maneja los iconos para los tipos de archivo (el servicio determina, entre otras cosas, qué aplicación maneja un tipo de archivo). El icono del archivo siempre lo proporciona la aplicación que maneja la apertura de un archivo de forma predeterminada. De esta manera, por ejemplo, Vista previa proporciona íconos PDF por defecto e íconos PNG, pero si cambia todos los archivos PNG para abrirlos usando Pixelmator, estos archivos obtendrán un ícono de estilo Pixelmator después.
Lo que debe hacer es agregar su definición de tipo de archivo a la aplicación que la abre de manera predeterminada, o crear su propia aplicación "ficticia" para el tipo de archivo .
Como ejemplo, mi sistema aún no lo sabe .scalay quiero TextMatemanejarlo.
Primero, muestro el contenido del paqueteTextMate.app , navego Contents/y abro Info.plist, ya sea con un editor de texto o como Property List Editorparte de las herramientas de desarrollo de Apple.
TextMate usa un formato inusual para Info.plist(generalmente es binario o XML), un extracto del cual se ve así:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
La clave principal CFBundleDocumentTypeses lo que queremos. El primer elemento secundario del mismo, encerrado entre llaves, contiene una definición de tipo de archivo, completa con el nombre (para la columna de tipo de archivo en Finder), las extensiones de archivo y el nombre del archivo de icono ( ADApara TextMate.app/Contents/Resources/ADA.icns).
Para admitir .scala, debemos agregar un elemento hermano similar al anterior, debajo del mismo elemento padre CFBundleDocumentTypes:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
},
Por simplicidad, estoy usando el mismo archivo de icono, pero podemos crear uno nosotros mismos, copiarlo TextMate.app/Contents/Resources/SCALA.icnsy hacer referencia a él como SCALAen Info.plist.
Ahora, cierre TextMate si se está ejecutando, mueva la aplicación TextMate.appa una carpeta diferente y ábrala nuevamente. Ciérrelo y muévalo hacia atrás, luego ábralo nuevamente. Esto se hace para que Launch Services recoja los cambios Info.plistque acabamos de realizar.
El resultado se ve así (recuerde, reutilizamos el icono de TextMate Ada para .scala):

Si no desea asociar una aplicación para abrir .scalaarchivos (no puedo imaginar por qué, pero hay una manera de hacerlo): cambie las adiciones al archivo a lo siguiente:
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
CFBundleTypeRole = "None";
},
Ahora, la aplicación declara el tipo de archivo, pero le dice al sistema que no sabe cómo manejarlo (Apple da el ejemplo de que Finder declara los tipos de fuente, aunque no puede abrirlos).
* Tenga en cuenta que cualquier asignación de aplicación permanente al tipo de archivo anula el icono, probablemente al tipo de "documento desconocido".
Si ya tiene una aplicación asociada .scalay solo desea cambiar el icono del archivo sin cambiar la aplicación asociada:
Abra la aplicación Info.plist, busque la entrada de tipo de archivo CFBundleDocumentTypesy obtenga el CFBundleTypeIconFile. Modifique este archivo .../Contents/Resources/y debería reflejarse en Finder poco después.
Información adicional:
Cómo cambiar el ícono de un solo documento o carpeta a un archivo de imagen
Suponga que tiene una imagen ~/Desktop/test.pngque desea usar como un ícono (es la captura de pantalla utilizada anteriormente para ilustrar el .scalacambio de ícono / TextMate / Ada.
Abrir /Applications/Utilities/Terminal.appe ingresar:
sips -i ~/Desktop/test.png
Esto cambiará el test.pngicono del archivo a su imagen. Como disfruto de la recursividad, intentemos esto:
Antes, el pngícono de Vista previa simple (la vista previa de la imagen está desactivada):

Después, el archivo de imagen en sí es su vista previa:

Ahora podemos abrir el cuadro de diálogo Obtener información del archivo , hacer clic en el icono del documento futuro deseado en la parte superior izquierda, Cmd-Cpara copiarlo, abrir el cuadro de diálogo Obtener información del archivo del documento , hacer clic en el icono del documento actual no deseado en la parte superior izquierda y Cmd-Vpegar el icono que queremos
Alternativamente, puede abrir el archivo de imagen que desea usar como icono en Vista previa, Cmd-Apara seleccionar todo, Cmd-Cpara copiar la imagen al portapapeles. Luego abra el cuadro de diálogo Obtener información del documento de destino , seleccione el icono para cambiar en la esquina superior izquierda y Cmd-Vpegue la imagen sobre él.