Cambiar los iconos de la barra lateral del Finder de Mac OS X

He visto muchas preguntas/respuestas relacionadas, pero parece que todavía no hay una solución que funcione. Así que resumí toda la información relacionada que encontré y tal vez podamos encontrar una solución.

Entonces, una de las formas de hacerlo es como en el complemento de SIMBL para íconos de colores (búscalo en Google) y como se hace en Dropbox: inyectar código en mach_kernel. Pero no me gusta esta idea con la inyección de código y parece que puede haber una forma más sencilla con la modificación de los recursos del sistema.

Por lo tanto, todos los datos de las entradas de la barra lateral se almacenan en ~/Library/Preferences/com.apple.sidebarlists.plist (es una plist binaria, ábrala con Xcode/PlistEditPro/etc) favoritos -> VolumesList

El ícono para la entrada se define con un par de datos: Icon y CustomItemProperties -> com.apple.LSSharedFileList.TemplateSystemSelector

eso significa que es posible cambiar el Alias ​​a personalizado para las entradas predeterminadas, o agregar Icon y CustomItemProperties -> com.apple.LSSharedFileList.TemplateSystemSelector a la entrada personalizada con datos copiados de las entradas predeterminadas y funcionará.

Debe cerrar sesión -> iniciar sesión para ver los cambios.

Pero con eso solo puede cambiar la imagen de entrada que ya está en el sistema. Así que miré más detalladamente los campos Icon y CustomItemProperties -> com.apple.LSSharedFileList.TemplateSystemSelector

El ícono de campo está codificado en hexadecimal y decodificado, se ve así:

ImgR��4����FBIL��(����������������ћЊщ��H+�����ю≤�€\��ћCW����     €ю��������€€€€���ю≤�юD�юC�з�^~�^{��@��T�o�o�l�b�a�r�D�o�c�u�m�e�n�t�s�F�o�l�d�e�r�I�c�o�n�.�i�c�n�s����M�a�c�H�D��_System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ToolbarDocumentsFolderIcon.icns���/�€€

(campo Documentos por defecto)

Por lo tanto, está apuntando al archivo normal de iconos de documentos en color. Cambiar datos para otro archivo .icns (incluso válido o desde otro ícono predeterminado) hace que la entrada muestre el ícono de carpeta de valores predeterminado. Pero si lo cambia a otro ícono predeterminado y luego cambia com.apple.LSSharedFileList.TemplateSystemSelector como en ese ícono, entonces mostrará ese otro ícono predeterminado.

com.apple.LSSharedFileList.TemplateSystemSelector tiene este aspecto:

1935819875

(campo Documentos por defecto)

Esto significa que los datos del icono y el número com.apple.LSSharedFileList.TemplateSystemSelector están relacionados y un par de ellos determina el icono de entrada. Todavía no sé qué es este número y qué significa, pero para las entradas predeterminadas, siempre comienza con 19358* * . Creo que está relacionado con el encabezado LSSharedFileList.h de CoreServices.framework y su número de entrada en algún tipo de lista de recursos del sistema.

¿Hay alguien que sepa qué hacer a continuación? Te agradecería si me pudieras ayudar con eso.

Aquí hay una lista de datos de entradas predeterminadas http://www.mediafire.com/view/?l5sqalslbcxj2dl Le ayudará si desea cambiar los íconos de la carpeta de valores en la barra lateral a íconos de las entradas predeterminadas.

nunca debe manipular plists de LSSharedFileList directamente. Apple publicó la API LSSharedFileList hace bastante tiempo

Respuestas (3)

Esta no es una respuesta, pero agrega algo de información. El valor asociado con la clave com.apple.LSSharedFileList.TemplateSystemSelector, 1935819875, es una representación decimal del tipo de archivo. En hexadecimal, es 0x73624463, que son las letras ascii 'sbDc'. Este tipo de archivo se describe en /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist. Esta es una lista binaria que puede convertir a xml usando plutil -convert xml1 -o Info.plist.xml Info.plist. Mirando en el archivo Info.plist.xml, puede ver un diccionario en el nivel superior. Dentro de esto hay una clave "CFBundleDocumentTypes" y una matriz de diccionarios como su valor. En esta matriz hay un diccionario que contiene lo siguiente:

<dict>
    <key>CFBundleTypeIconFile</key>
    <string>SidebarDocumentsFolder.icns</string>
    <key>CFBundleTypeName</key>
    <string>Sidebar Documents Folder Icon</string>
    <key>CFBundleTypeOSTypes</key>
    <array>
        <string>sbDc</string>
    </array>
    <key>CFBundleTypeRole</key>
    <string>None</string>
    <key>LSTypeIsPackage</key>
    <false/>
    <key>NSPersistentStoreTypeKey</key>
    <string>Binary</string>
</dict>

Un par clave/valor interesante en este diccionario es CFBundleTypeIconFile: SidebarDocumentsFolder.icns. Este archivo se puede encontrar en /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/SidebarDocumentsFolder.icns y contiene los iconos que se usan para las carpetas de documentos.

Pensaría que cambiar el valor de com.apple.LSSharedFileList.TemplateSystemSelector a un valor diferente, o actualizar el diccionario para 'sbDc' para referirse a un archivo icns diferente lo ayudaría a tener íconos personalizados.

Solo entiendo la zona en la que este hilo trata el código. No soy un ingeniero o un tipo de software, pero encontré esto útil.

Lo que hice. Descargué el último xtrafinder en el sitio web predeterminado y después de instalarlo en las preferencias seleccionadas, muestre íconos coloridos en la barra lateral.

Luego vi este artículo http://forums.macrumors.com/archive/index.php/t-1609746.html

Aquí si cambias el icono funciona. Lo probé con Airdrop.

ingrese la descripción de la imagen aquí

Esta es una forma rápida de agregar íconos a la barra lateral: Descargue la aplicación gratuita "XtraFinder" https://www.macupdate.com/app/mac/42067/xtrafinder Además de agregar ventanas de búsqueda con pestañas, hay una casilla de verificación en el panel de preferencias para "Mostrar etiquetas de colores en la barra lateral" ¡Míralo y aparecerán tus íconos existentes! No podría ser más simple, además obtienes docenas de otras características en el trato. ¡Disfrutar! (Funciona en 10.6.8 y posteriores)