Почему Dropbox получает значок на боковой панели Finder?

40

Почему Dropbox получает не универсальный значок на боковой панели Finder, когда все другие каталоги, такие как Google Drive и Сайты (родные в OS X до Lion), имеют один и тот же общий?

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

Как настроить значки, используемые папками на боковой панели? OS X раньше показывала отдельные значки всех папок там - больше нет.

Baumr
источник

Ответы:

36

Как вы заметили, последние версии OS X отображают только общие значки папок на боковой панели. Так почему же Dropbox получает специальное лечение?

Краткий ответ: Dropbox использует недокументированный API для этого. Если говорить нетехнически, это специальный взлом, который устанавливается приложением Dropbox.


Некоторые любопытные люди в StackOverflow нашли специальный механизм, используемый Dropbox: добрый старый mach_inject. Один и тот же пакет содержит как элемент панели инструментов, так и значок боковой панели.

Если вам интересно, файлы ресурсов живут здесь (по крайней мере, в моей системе):

/Library/DropboxHelperTools/Dropbox_u502/DropboxBundle.bundle/Contents/Resources

Очевидно, что Dropbox идет на многое, чтобы беспрепятственно интегрироваться в Finder. Не имея подобного подхода, другие обычные папки имеют только общие значки на боковой панели.


Редактирование 01.10.2015: Начиная с Yosemite (10.10), существует новый, санкционированный API-интерфейс Finder Sync для интеграции, как указывает Дувер в другом ответе. В El Capitan (10.11) защита целостности системы не разрешает старый подход в стиле mach_inject.

JMK
источник
5
Google должен сделать то же самое с Drive :)
Baumr
Интеграция Dropbox Finder работает с El Capitan. У меня есть контекстные меню, значки и пользовательский значок на боковой панели. Какую версию клиента вы используете?
Маттео
@Matteo: Это интересно, когда я пошел, чтобы проверить версию (v3.10.6), она начала работать! Уверяю вас, раньше это не сработало. Интересно ...
JMK
1
@Matteo: Ага, понимание прочитанного не с моей стороны. Кто-то уже опубликовал обновленный API ниже. Спасибо за исправление!
JMK
10

Согласно документации для расширения Finder Sync :

Вы также можете использовать API точки расширения, чтобы добавить кнопку панели инструментов в окно Finder или значок боковой панели для отслеживаемой папки .

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

  • Зарегистрируйте набор папок для мониторинга.
  • Получать уведомления, когда пользователь запускает или останавливает просмотр содержимого отслеживаемой папки. Например, расширение получает уведомление, когда пользователь открывает контролируемую папку в Finder или в диалоговом окне «Открыть» или «Сохранить».
  • Добавляйте, удаляйте и обновляйте значки и метки для элементов в контролируемой папке.
  • Отображение контекстного меню, когда пользователь нажимает Control-элемент в контролируемой папке.
  • Добавьте пользовательскую кнопку на панель инструментов Finder.

Редактировать:

Как упоминает Муген ниже, El Capitan не позволит внедрить код, что делает FinderSync единственной возможностью в будущем. Если FinderSync доступен только с 10.10+, лучшим вариантом будет такой:

if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
doovers
источник
Это, кажется, вступает в противоречие с самым рейтинговым ответом, какие-либо комментарии?
Баумр
3
@Baumr Я только размышляю здесь, но я предполагаю, что ответ jmk был, вероятно, правильным в то время (и может быть таковым), но теперь более вероятно, что dropbox использует «официальное» расширение синхронизации Finder с момента выпуска Yosemite. Кроме того, я думаю, что для тех, кто пытается достичь той же функциональности в своем собственном приложении, это было бы более полезным решением, поскольку оно задокументировано.
Дуверс
Похоже, ты прав - есть способ подтвердить?
Баумр
2
В El-Capitan мы больше не сможем внедрять код, и поэтому опция FinderSync - единственная
Mugen
1
@Baumr, поскольку расширение FinderSync доступно только в 10.10+, я думаю, что было бы лучше, если бы оно было:if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
Mugen
2

Установите последнюю версию приложения Xtra Finder с - http://www.trankynam.com/xtrafinder/

Включите «Показывать красочные иконки на боковой панели». Он расположен ниже текстового поля «Максимальная ширина».

Для других значков на боковой панели

Замените файлы здесь: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ папка содержит используемые серые ICNS в дополнение к [неиспользованным] цветным файлам ICNS 1024x1024. Каждый файл ICNS должен поддерживать следующие размеры:

  • 16x16 72 DPI
  • 18x18 72 DPI
  • 32x32 144 и 72 DPI
  • 36x36 144 DPI
  • 64x64 144 DPI

Если вы добавили пользовательскую папку на боковую панель, вы также можете изменить ее значок. Допустим, имя папки называется «Программное обеспечение». Подготовьте файл ICNS с именем SidebarSoftwares.icns в указанном выше каталоге.

В основном файл icns должен называться SidebarFoldername.icns, где Sidebar остается неизменным, и вы вводите соответствующее имя папки.

Для DropBox

Примените файл ICNS к / Users / admin / Dropbox /Applications/Dropbox.app /Applications/Dropbox.app/Contents/Resources/box.icns (необходимо заменить этот файл тем, который вам нужен)

Иконки DropBox Finder SideBar

Перейдите к /Library/DropboxHelperTools/Dropbox_u502/DropboxBundle.bundle/Contents/Resources

Здесь вам нужно заменить следующее: toolbar.tiff (32x32 пикселей 72 DPI)

sidebar.tiff (64x64 пикселей, 72 DPI)

contextmenu.tiff (32x32 пикселей, 72 DPI)

toolbar_large.png (19x19 пикселей 72 DPI)

sidebar_blue.png (16x16 пикселей, 72 DPI)

Tech One
источник
Требуется ли приложение для установки приложения, чтобы добавить собственный значок боковой панели для папки, или это можно сделать самостоятельно? Кроме того, вы знаете, будет ли это работать с Yosemite, когда это будет выпущено?
dhruveonmars
1
Я просто попытался добавить свою иконку, но это не сработало. Затем я установил приложение SideEffect, которое делает иконки красочными, и появился мой собственный значок. Деинсталлировал приложение и мой значок исчез.
Пахнев
1

Dropbox использует метод ввода кода Finder для настройки значка боковой панели (и добавления элементов в контекстное меню, а также добавления кнопки в верхнюю панель Finder). И нет хорошего способа настроить иконку боковой панели с 10.7.

В Yosemite Apple добавила несколько API, чтобы иметь возможность настраивать контекстное меню Finder и элемент панели инструментов, но я не уверен насчет боковой панели.

Николай Ольшевский
источник
Говоря о Yosemite, я считаю, что Dropbox теперь использует расширение Finder Sync для интеграции с Finder ... но я не вижу ничего очевидного в документах этой функции о предоставлении пользовательского значка боковой панели (поддерживаются пользовательские значки панели инструментов) ... Так что взломать еще можно на месте.
Дан Джей
Конечно, это называется расширением синхронизации Finder. Но это не позволяет значок боковой панели. Однако я читаю документацию по диагонали, поэтому, вероятно, что-то упустил.
Николай Ольшевский
0

Установщик dropbox помещает его туда, а установщик google - нет.

Просто перетащите папку на боковую панель, и она будет прикреплена, без необходимости установки.

Hiltmon
источник
10
Я думаю, что вопрос конкретно о иконе.
asmeurer
Да, это не решает вопрос
Баумр
2
Я бы проголосовал за это еще раз, если бы мог. Это всего лишь код, и установщик dropbox устанавливает эту функцию, когда она работает в фоновом режиме. Это как вечеринка, и вы приглашаете двух гостей. Один оставляет свою визитку на комоде, другой нет. Выбор сделал не владелец, а гости, которые вели себя по-разному.
bmike
2
@bmike, вторая часть вопроса была: «Как я могу настроить значки, используемые папками на боковой панели?»
Баумр
0

Мне удалось получить собственный значок загрузки на боковой панели для перемещенной папки загрузок. Процесс был непростым, и он описан здесь: https://github.com/w0lfschild/colorfulSidebar_9/issues/1 Он опирается на mySIMB и ColorfulSidebar. 3 года назад я отказался от настройки родного значка «Загрузки». Сегодня я решил дать еще один шанс, и в конце концов он работает.

Sassan
источник