Ícones para tipos de arquivo são manipulados pelo Launch Services (o serviço que determina, entre outras coisas, qual aplicativo manipula um tipo de arquivo). O ícone do arquivo é sempre fornecido pelo aplicativo que gerencia a abertura de um arquivo por padrão. Dessa forma, por exemplo, a Visualização fornece ícones PDF por padrão e ícones PNG, mas se você alterar todos os arquivos PNG para abrir usando o Pixelmator, esses arquivos obterão um ícone no estilo Pixelmator posteriormente.
O que você precisa fazer é adicionar sua definição de tipo de arquivo ao aplicativo que a abre por padrão ou criar seu próprio aplicativo "fictício" para o tipo de arquivo .
Como exemplo, meu sistema ainda não conhece .scala
e quero TextMate
lidar com isso.
Primeiro, mostro o conteúdo do pacoteTextMate.app
, navego Contents/
e abro Info.plist
, com um editor de texto ou Property List Editor
parte das ferramentas de desenvolvedor da Apple.
O TextMate usa um formato incomum para Info.plist
(geralmente é binário ou XML), cujo trecho se parece com isso:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
A chave dos pais CFBundleDocumentTypes
é o que queremos. O primeiro elemento filho dele, entre chaves, contém uma definição de tipo de arquivo, completa com nome (para a coluna de tipo de arquivo no Finder), extensões de arquivo e o nome do arquivo de ícone ( ADA
para TextMate.app/Contents/Resources/ADA.icns
).
Para dar suporte .scala
, precisamos adicionar um elemento irmão semelhante ao acima, sob o mesmo elemento pai CFBundleDocumentTypes
:
CFBundleDocumentTypes = (
{ CFBundleTypeName = "ADA source";
CFBundleTypeExtensions = (adb, ads);
CFBundleTypeIconFile = ADA;
},
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
},
Por uma questão de simplicidade, estou usando o mesmo arquivo de ícone, mas podemos criar um nós mesmos, copiá-lo TextMate.app/Contents/Resources/SCALA.icns
e consultá-lo como SCALA
em Info.plist
.
Agora, feche o TextMate, se estiver em execução, mova o aplicativo TextMate.app
para uma pasta diferente e abra-o novamente. Feche e mova-o para trás, depois abra-o novamente. Isso é feito para que o Launch Services capte as alterações Info.plist
que acabamos de executar.
O resultado é semelhante a este (lembre-se, reutilizamos o ícone TextMate Ada para .scala
):
Se você não deseja associar um aplicativo a abrir .scala
arquivos (não consegue imaginar o porquê, mas há uma maneira de fazer isso): Altere as adições ao arquivo para o seguinte:
{ CFBundleTypeName = "Scala source";
CFBundleTypeExtensions = (scala);
CFBundleTypeIconFile = ADA;
CFBundleTypeRole = "None";
},
Agora, o aplicativo declara o tipo de arquivo, mas informa ao sistema que ele não sabe como manipulá-lo (a Apple fornece o exemplo do Finder que declara os tipos de fonte, embora não possa abri-los).
* Observe que qualquer atribuição permanente de aplicativo ao tipo de arquivo substitui o ícone, provavelmente do tipo "documento desconhecido".
Se você já possui um aplicativo associado .scala
e deseja alterar o ícone do arquivo sem alterar o aplicativo associado:
Abra o aplicativo Info.plist
, procure a entrada do tipo de arquivo CFBundleDocumentTypes
e obtenha o CFBundleTypeIconFile
. Modifique este arquivo .../Contents/Resources/
e ele deve ser refletido no Finder logo depois.
Informações sobre bônus:
Como alterar o ícone de um único documento ou pasta para um arquivo de imagem
Suponha que você tenha uma imagem na ~/Desktop/test.png
qual deseja usar um ícone (é a captura de tela usada acima para ilustrar a .scala
alteração do ícone / TextMate / Ada.
Abra /Applications/Utilities/Terminal.app
e digite:
sips -i ~/Desktop/test.png
Isso mudará o test.png
ícone do arquivo para sua imagem. Desde que eu gosto de recursão, vamos tentar o seguinte:
Antes, o png
ícone de visualização simples (a visualização da imagem está desativada):
Depois, o próprio arquivo de imagem é sua visualização:
Agora podemos abrir a caixa de diálogo Obter informações do arquivo , clicar no ícone de documento futuro desejado no canto superior esquerdo, Cmd-C
para copiá-lo, abrir a caixa de diálogo Obter informações do arquivo de documento , clicar no ícone de documento atual indesejado no canto superior esquerdo e Cmd-V
colar o ícone que queremos.
Como alternativa, você pode abrir o arquivo de imagem que deseja usar como ícone na Visualização, Cmd-A
para selecionar tudo, Cmd-C
para copiar a imagem para a área de transferência. Em seguida, abra a caixa de diálogo Obter informações do documento de destino , selecione o ícone para alterar no canto superior esquerdo e Cmd-V
cole a imagem sobre ele.