Como o Dropbox recebe um ícone na barra lateral do Finder?

40

Como o Dropbox obtém um ícone não genérico na barra lateral do Finder, quando outros diretórios como o Google Drive e o Sites (nativo do OS X antes do Lion) têm o mesmo genérico?

insira a descrição da imagem aqui

Como posso personalizar os ícones usados ​​pelas pastas na barra lateral? O OS X costumava mostrar ícones individuais de todas as pastas lá - não mais.

Baumr
fonte

Respostas:

36

Como você notou, as versões recentes do OS X exibem apenas ícones de pastas genéricos na barra lateral. Então, por que o Dropbox recebe tratamento especial?

A resposta curta é que o Dropbox usa API não documentada para fazer isso. Na fala não técnica, é um hack especial instalado pelo aplicativo Dropbox.


Algumas pessoas curiosas no StackOverflow encontraram o mecanismo específico usado pelo Dropbox: bom e velho 'mach_inject. O mesmo pacote fornece o item da barra de ferramentas e o ícone da barra lateral.

Se você estiver curioso, os arquivos de recursos estão aqui (pelo menos no meu sistema):

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

Claramente, o Dropbox se esforça muito para integrar-se perfeitamente ao Finder. Sem tratamento semelhante, outras pastas comuns têm apenas ícones genéricos na barra lateral.


Editar 1/10/2015: A partir de Yosemite (10.10), há uma nova API sancionada do Finder Sync para integração, como doovers apontam em outra resposta. No El Capitan (10.11), o System Integrity Protection não permitirá a antiga abordagem no estilo mach_inject.

jmk
fonte
5
Google deve fazer o mesmo com movimentação :)
Baumr
A integração do Dropbox Finder funciona com o El Capitan. Eu tenho os menus de contexto, os emblemas e o ícone personalizado na barra lateral. Qual versão do cliente você está usando?
Matteo
@ Matteo: Isso é interessante, quando fui verificar a versão (v3.10.6), ela começou a funcionar! Garanto-lhe que não funcionou antes. Interessante ...
jmk
11
@ Matteo: Aha, a compreensão de leitura falha da minha parte. Alguém já postou com a API atualizada abaixo. Obrigado pela correção!
Jmk # 1/15
10

De acordo com a documentação para a Extensão do Finder Sync :

Você também pode usar a API do ponto de extensão para adicionar um botão da barra de ferramentas à janela do Finder ou um ícone da barra lateral da pasta monitorada .

Eu acho que é isso que o Dropbox usa para conseguir isso e algumas / todas as outras funcionalidades facilitadas por esta extensão. Por exemplo, você também pode:

  • Registre um conjunto de pastas para monitorar.
  • Receba notificações quando o usuário iniciar ou parar de navegar no conteúdo de uma pasta monitorada. Por exemplo, a extensão recebe uma notificação quando o usuário abre uma pasta monitorada no Finder ou na caixa de diálogo Abrir ou Salvar.
  • Adicione, remova e atualize crachás e etiquetas nos itens de uma pasta monitorada.
  • Exiba um menu contextual quando o usuário clica com a tecla Control pressionada em um item dentro de uma pasta monitorada.
  • Adicione um botão personalizado à barra de ferramentas do Finder.

Editar:

Como Mugen menciona abaixo, o El Capitan não permitirá a injeção de código, tornando o FinderSync a única opção daqui para frente. Com o FinderSync disponível apenas a partir de 10.10+, a melhor opção seria:

if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
doovers
fonte
Isso parece entrar em conflito com a resposta mais bem avaliada, algum comentário?
Baumr 31/05
3
@ Baumr Estou apenas especulando aqui, mas eu suporia que a resposta do jmk provavelmente estava correta no momento (e ainda pode estar), mas que agora é mais provável que o dropbox use a Extensão 'oficial' do Finder Sync desde o lançamento do Yosemite. Além disso, eu pensaria que, para alguém que tenta alcançar a mesma funcionalidade em seu próprio aplicativo, essa seria uma solução mais útil, pois está documentada.
doovers
Parece que você está certo - alguma maneira de confirmar?
Baumr
2
Em El-Capitan não será capaz de injetar código mais, e assim por FinderSync opção é o único
Mugen
11
@Baumr desde extensão FinderSync só está disponível em 10.10+, eu acho que seria melhor caso:if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
Mugen
2

Instale o aplicativo Xtra Finder mais recente em - http://www.trankynam.com/xtrafinder/

Ativar "Mostrar ícones coloridos na barra lateral" Está localizado abaixo de uma caixa de texto "Largura máxima"

Para outros ícones na barra lateral

Substitua os arquivos aqui: A pasta /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ contém o ICNS cinza usado, além dos arquivos ICNS coloridos 1024x1024 [não utilizados]. Cada arquivo ICNS deve suportar os seguintes tamanhos:

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

Se você adicionou uma pasta personalizada à barra lateral, também pode alterar o ícone. Digamos que o nome da pasta se chame "Softwares" Prepare um arquivo ICNS com o nome SidebarSoftwares.icns no diretório mencionado acima.

Basicamente, o arquivo icns precisa ser nomeado SidebarFoldername.icns em que Sidebar permanece constante e você insere o nome da pasta relevante.

Para DropBox

Aplique o arquivo ICNS em / Users / admin / Dropbox /Applications/Dropbox.app /Applications/Dropbox.app/Contents/Resources/box.icns (é necessário substituir este arquivo pelo que você deseja)

Ícones do DropBox Finder SideBar

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

Aqui você precisa substituir o seguinte: toolbar.tiff (32x32 pixels 72 DPI)

sidebar.tiff (64x64 pixels 72 DPI)

contextmenu.tiff (32x32 pixels 72 DPI)

toolbar_large.png (19x19 pixels 72 DPI)

sidebar_blue.png (16x16 pixels 72 DPI)

Tech One
fonte
O pouco sobre a adição de um ícone da barra lateral personalizada a uma pasta requer que o aplicativo seja instalado ou pode ser feito sozinho? Além disso, você sabe se isso funcionará com o Yosemite quando for lançado?
dhruveonmars
11
Eu apenas tentei adicionar meu próprio ícone e não funcionou. Em seguida, instalei o aplicativo SideEffect, que torna os ícones coloridos e o meu ícone personalizado apareceu. Desinstalei o aplicativo e meu ícone sumiu.
Pahnev 25/01
1

O Dropbox usa a técnica de injeção de código do Finder para personalizar o ícone da barra lateral (e adicionar itens ao menu do botão direito do mouse e adicionar o botão à barra superior do Finder). E não há uma boa maneira de personalizar o ícone da barra lateral desde 10.7.

No Yosemite, a Apple adicionou algumas APIs para poder personalizar o menu do botão direito do mouse e o item da barra de ferramentas do Finder, mas não tenho certeza sobre a barra lateral.

Nickolay Olshevsky
fonte
Falando em Yosemite, acredito que o Dropbox agora usa uma extensão do Finder Sync para integrar-se ao Finder ... mas não vejo nada óbvio nos documentos desse recurso sobre o fornecimento de um ícone personalizado da barra lateral (os ícones personalizados da barra de ferramentas são suportados) ... Portanto, o hack ainda pode estar no lugar.
Dan J
Claro, isso é chamado de extensão de sincronização do Finder. Mas não permite o ícone da barra lateral. No entanto, li a documentação na diagonal, provavelmente perdi alguma coisa.
Nickolay Olshevsky
0

O instalador do dropbox coloca um lá e o instalador do google drive não.

Basta arrastar uma pasta para a barra lateral e ela ficará colada, sem necessidade de instalador.

Hiltmon
fonte
10
Eu acho que a pergunta é especificamente sobre o ícone.
asmeurer
Sim, isso não abordar a questão
Baumr
2
Eu daria outro voto positivo, se pudesse. É apenas código e o instalador do dropbox instala esse recurso quando é executado em segundo plano. É como fazer uma festa e você convida dois convidados. Um deixa o cartão de visita em sua cômoda, o outro não. Não é o proprietário que fez a escolha, são os convidados que se comportaram de maneira diferente.
bmike
2
@bmike, a segunda parte da pergunta foi: "Como posso personalizar os ícones usados ​​pelas pastas na barra lateral?"
Baumr 15/05
0

Consegui obter o ícone de Download nativo na barra lateral para uma pasta de Downloads movida. O processo não foi fácil e está descrito aqui: https://github.com/w0lfschild/colorfulSidebar_9/issues/1 Ele conta com mySIMB e colorfulSidebar. Há 3 anos, desisti de definir o ícone nativo de Downloads. Hoje eu decidi dar outra chance e, eventualmente, está funcionando.

Sassan
fonte