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


11

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 iconos de colores (google it) 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 simple 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 lista binaria, ábrala con los favoritos de Xcode / PlistEditPro / etc) -> VolumesList

El icono 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 una 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 busqué más detalladamente los campos Icon y CustomItemProperties -> com.apple.LSSharedFileList.TemplateSystemSelector

El icono 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 de documentos predeterminado)

Por lo tanto, apunta al archivo de iconos de documentos normales y de color. El cambio de datos para otro archivo .icns (incluso válido o desde otro icono predeterminado) hace que la entrada muestre el icono predeterminado de la carpeta de stock. Pero si lo cambia a otro icono predeterminado y luego cambia com.apple.LSSharedFileList.TemplateSystemSelector como en ese icono, mostrará ese otro icono predeterminado.

com.apple.LSSharedFileList.TemplateSystemSelector se ve así:

1935819875

(campo de documentos predeterminado)

Esto significa que los datos del ícono y el número com.apple.LSSharedFileList.TemplateSystemSelector están relacionados y un par de ellos determina el ícono 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 CoreServices.framework LSSharedFileList.h y es el número de entradas en algún tipo de lista de recursos del sistema.

¿Alguien sabe qué hacer a continuación? Le agradecería que me ayudara con eso.

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


nunca debe manipular las listas LSSharedFileList directamente. Apple publicó la API LSSharedFileList hace bastante tiempo

Respuestas:


7

Esta no es una respuesta, pero agrega cierta 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 serie 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 utilizados para las carpetas de documentos.

Creo 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 llevará a tener iconos personalizados.


0

Solo entiendo la zona en la que este hilo trata el código. No soy un ingeniero o un chico de software, pero me pareció útil.

Lo que hice. Descargó el último xtrafinder en el sitio web predeterminado y después de instalarlo en las preferencias seleccionadas, muestra iconos de colores en la barra lateral.

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

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

ingrese la descripción de la imagen aquí


0

Aquí hay 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 buscador con pestañas, hay una casilla de verificación en el panel de preferencias para "Mostrar etiquetas coloridas en la barra lateral" ¡Verifíquelo y aparecerán sus iconos existentes! No podría ser más simple, además de obtener docenas de otras características en el negocio. ¡Disfrutar! (Funciona en 10.6.8 y más reciente)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.