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 .scala
y quiero TextMate
manejarlo.
Primero, muestro el contenido del paqueteTextMate.app
, navego Contents/
y abro Info.plist
, ya sea con un editor de texto o como Property List Editor
parte 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 CFBundleDocumentTypes
es 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 ( ADA
para 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.icns
y hacer referencia a él como SCALA
en Info.plist
.
Ahora, cierre TextMate si se está ejecutando, mueva la aplicación TextMate.app
a 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.plist
que 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 .scala
archivos (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 .scala
y 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 CFBundleDocumentTypes
y 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.png
que desea usar como un ícono (es la captura de pantalla utilizada anteriormente para ilustrar el .scala
cambio de ícono / TextMate / Ada.
Abrir /Applications/Utilities/Terminal.app
e ingresar:
sips -i ~/Desktop/test.png
Esto cambiará el test.png
icono 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-C
para 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-V
pegar el icono que queremos
Alternativamente, puede abrir el archivo de imagen que desea usar como icono en Vista previa, Cmd-A
para seleccionar todo, Cmd-C
para 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-V
pegue la imagen sobre él.