Изменение значков боковой панели Mac OS X Finder

Я видел много связанных вопросов/ответов, но кажется, что для него до сих пор нет рабочего решения. Итак, я суммировал всю связанную информацию, которую я нашел, и, возможно, мы сможем найти для нее решение.

Таким образом, один из способов сделать это, как в плагине SIMBL для цветных значков (погуглите) и как это сделано в Dropbox - вставить код в mach_kernel. Но мне не нравится эта идея с внедрением кода и кажется, что может быть более простой способ с модификацией системных ресурсов.

Таким образом, все данные для записей боковой панели хранятся в ~/Library/Preferences/com.apple.sidebarlists.plist (это двоичный plist, откройте его с помощью Xcode/PlistEditPro/etc) избранное -> VolumesList

значок для входа определяется парой данных: Icon и CustomItemProperties -> com.apple.LSSharedFileList.TemplateSystemSelector

это означает, что можно изменить псевдоним на пользовательский для записей по умолчанию или добавить Icon и CustomItemProperties -> com.apple.LSSharedFileList.TemplateSystemSelector к пользовательской записи с данными, скопированными из записей по умолчанию, и это будет работать.

Вам нужно выйти из системы -> войти, чтобы увидеть изменения.

Но при этом вы можете изменить только изображение входа, которое уже есть в системе. Поэтому я более подробно рассмотрел поля Icon и CustomItemProperties -> com.apple.LSSharedFileList.TemplateSystemSelector

Значок поля закодирован в шестнадцатеричном формате, а в декодированном виде выглядит так:

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���/�€€

(поле Документы по умолчанию)

Таким образом, он указывает на файл с обычными цветными значками документов. Изменение данных для другого файла .icns (даже действительного или из другого значка по умолчанию) приводит к тому, что в записи отображается значок стандартной папки по умолчанию. Но если изменить его на другой значок по умолчанию, а затем изменить com.apple.LSSharedFileList.TemplateSystemSelector, как в этом значке, тогда он покажет другой значок по умолчанию.

com.apple.LSSharedFileList.TemplateSystemSelector выглядит так:

1935819875

(поле Документы по умолчанию)

Это означает, что данные значка и номер com.apple.LSSharedFileList.TemplateSystemSelector связаны, и пара из них определяет значок записи. Я пока не понял, что это за число и что оно означает, но для записей по умолчанию оно всегда начинается с 19358* * . Я думаю, что это связано с заголовком CoreServices.framework LSSharedFileList.h и номером записи в каком-то списке системных ресурсов.

Кто-нибудь знает, что делать дальше? Я был бы признателен, если бы вы могли помочь мне с этим.

Вот список данных записей по умолчанию http://www.mediafire.com/view/?l5sqalslbcxj2dl Это поможет вам, если вы хотите изменить значки стандартных папок на боковой панели на значки записей по умолчанию.

вы никогда не должны напрямую манипулировать списками LSSharedFileList. Apple довольно давно опубликовала API LSSharedFileList.

Ответы (3)

Это не ответ, но он добавляет некоторую информацию. Значение, связанное с ключом com.apple.LSSharedFileList.TemplateSystemSelector, 1935819875, представляет собой десятичное представление типа файла. В шестнадцатеричном формате это 0x73624463, которые представляют собой буквы ascii «sbDc». Этот тип файла описан в /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist. Это двоичный plist, который вы можете преобразовать в xml с помощью plutil -convert xml1 -o Info.plist.xml Info.plist. Заглянув в файл Info.plist.xml, вы увидите словарь на верхнем уровне. Внутри находится ключ "CFBundleDocumentTypes" и массив словарей в качестве его значения. В этом массиве находится словарь, содержащий следующее:

<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>

Интересная пара ключ/значение в этом словаре — CFBundleTypeIconFile: SidebarDocumentsFolder.icns. Этот файл можно найти в /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/SidebarDocumentsFolder.icns, и он содержит значки, используемые для папок документов.

Я бы подумал, что изменение значения com.apple.LSSharedFileList.TemplateSystemSelector на другое значение или обновление словаря для «sbDc» для ссылки на другой файл icns поможет вам получить пользовательские значки.

Я понимаю только зону, в которой этот поток имеет дело с кодом. Я не инженер или программист, но я нашел это полезным.

Что я сделал. Загрузил последнюю версию xtrafinder на веб-сайте по умолчанию и после установки в настройках выбрал красочные значки на боковой панели.

Потом увидел эту статью http://forums.macrumors.com/archive/index.php/t-1609746.html

Здесь, если вы измените значок, он работает. Пробовал через Airdrop.

введите описание изображения здесь

Вот быстрый способ добавить значки на боковую панель: Загрузите бесплатное приложение «XtraFinder» https://www.macupdate.com/app/mac/42067/xtrafinder Помимо добавления окон поиска с вкладками, на панели настроек есть флажок, «Показывать цветные метки на боковой панели». Проверьте это, и ваши существующие значки появятся! Что может быть проще, плюс вы получаете десятки других функций в придачу. Наслаждаться! (Работает на 10.6.8 и новее)