Pourquoi Dropbox obtient-il une icône dans la barre latérale du Finder?

40

Pourquoi Dropbox obtient-il une icône non générique dans la barre latérale du Finder, alors que d'autres répertoires tels que Google Drive et Sites (natifs sous OS X avant Lion) ont tous le même générique?

entrez la description de l'image ici

Comment personnaliser les icônes utilisées par les dossiers dans la barre latérale? OS X affichait auparavant les icônes individuelles de tous les dossiers.

Baumr
la source

Réponses:

36

Comme vous l'avez remarqué, les versions récentes d'OS X affichent uniquement les icônes de dossiers génériques dans la barre latérale. Alors, pourquoi Dropbox reçoit-il un traitement spécial?

La réponse courte est que Dropbox utilise une API non documentée pour accomplir cela. En termes non techniques, il s'agit d'un hack spécial installé par l'application Dropbox.


Quelques personnes curieuses sur StackOverflow ont découvert le mécanisme spécifique utilisé par Dropbox: good ol 'mach_inject. Le même ensemble contient à la fois l’élément de la barre d’outils et l’icône de la barre latérale.

Si vous êtes curieux, les fichiers de ressources résident ici (du moins sur mon système):

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

Il est clair que Dropbox s’efforce de s’intégrer de manière transparente dans le Finder. En l'absence d'un traitement similaire, d'autres dossiers ordinaires ne comportent que des icônes génériques dans la barre latérale.


Edit 01/10/2015: À partir de Yosemite (10.10), il existe une nouvelle API de synchronisation du Finder sanctionnée pour l'intégration, comme l'indique doovers dans une autre réponse. Dans El Capitan (10.11), la protection de l'intégrité du système n'autorisera pas l'ancienne approche de type mach_inject.

jmk
la source
5
Google devrait faire de même avec Drive :)
Baumr
L'intégration de Dropbox Finder fonctionne avec El Capitan. J'ai les menus contextuels, les badges et l'icône personnalisée dans la barre latérale. Quelle version du client utilisez-vous?
Matteo
@ Matteo: C'est intéressant, quand je suis allé vérifier la version (v3.10.6), ça a commencé à fonctionner! Je vous assure que ça n'a pas marché avant. Intéressant ...
JMK
1
@ Matteo: Aha, la compréhension en lecture échoue de ma part. Quelqu'un a déjà posté avec l'API mise à jour ci-dessous. Merci pour la correction!
Jmk
10

Selon la documentation de l’ extension Finder Sync :

Vous pouvez également utiliser l'API du point d'extension pour ajouter un bouton de barre d'outils à la fenêtre du Finder ou une icône de barre latérale pour le dossier surveillé .

J'imagine que c'est ce que Dropbox utilise pour atteindre cet objectif et certaines / toutes les autres fonctionnalités facilitées par cette extension. Par exemple, vous pouvez également:

  • Enregistrez un ensemble de dossiers à surveiller.
  • Recevoir des notifications lorsque l'utilisateur démarre ou arrête de parcourir le contenu d'un dossier surveillé. Par exemple, l'extension reçoit une notification lorsque l'utilisateur ouvre un dossier surveillé dans le Finder ou dans une boîte de dialogue Ouvrir ou Enregistrer.
  • Ajoutez, supprimez et mettez à jour des badges et des étiquettes sur les éléments d'un dossier surveillé.
  • Affiche un menu contextuel lorsque l'utilisateur clique sur un élément du dossier surveillé tout en maintenant la touche Ctrl enfoncée.
  • Ajoutez un bouton personnalisé à la barre d'outils du Finder.

Modifier:

Comme le mentionne Mugen ci-dessous, El Capitan n'autorisera pas l'injection de code, ce qui fait de FinderSync la seule option possible. Avec FinderSync uniquement disponible à partir de 10.10+, la meilleure option serait de le caser comme ceci:

if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
échecs
la source
Cela semble être en conflit avec la réponse la mieux notée, des commentaires?
Baumr
3
@Baumr, je ne fais que spéculer ici, mais je suppose que la réponse de jmk était probablement correcte à l'époque (et peut-être toujours), mais il est maintenant plus probable que dropbox utilise l'extension de synchronisation 'officielle' du Finder depuis la sortie de Yosemite. De plus, je penserais que pour une personne essayant d’obtenir la même fonctionnalité dans sa propre application, ce serait une solution plus utile car elle est documentée.
doovers
On dirait que vous avez raison - un moyen de confirmer?
Baumr
2
À El-Capitan, nous ne pourrons plus injecter de code, et l'option FinderSync est la seule option disponible
Mugen
1
@Baumr étant donné que l'extension FinderSync n'est disponible que dans les versions 10.10 et plus, je pense qu'il serait préférable de la caser:if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
Mugen
2

Installez la dernière application Xtra Finder à partir de - http://www.trankynam.com/xtrafinder/

Activer "Afficher les icônes colorées dans la barre latérale" Il est situé sous une zone de texte de "Largeur maximale"

Pour les autres icônes de la barre latérale

Remplacez les fichiers ici: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ Le dossier contient le fichier ICNS gris utilisé, ainsi que les fichiers ICNS 1024x1024 couleur [non utilisés]. Chaque fichier ICNS doit prendre en charge les tailles suivantes:

  • 16x16 72 DPI
  • 18x18 72 DPI
  • 32x32 144 et 72 DPI
  • 36 x 36 144 DPI
  • 64x64 144 DPI

Si vous avez ajouté un dossier personnalisé à la barre latérale, vous pouvez également modifier son icône. Supposons que le nom du dossier s'appelle "Logiciels". Préparez un fichier ICNS avec le nom SidebarSoftwares.icns dans le répertoire mentionné ci-dessus.

Fondamentalement, le fichier icns doit être nommé SidebarFoldername.icns où Sidebar reste constant et vous entrez le nom de pliage correspondant.

Pour DropBox

Appliquer le fichier ICNS à / Users / admin / Dropbox / Applications / Dropbox.app / Applications / Dropbox.app/Contents/Resources/box.icns (vous devez remplacer ce fichier par celui de votre choix).

DropBox Finder Icônes SideBar

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

Ici, vous devez remplacer ce qui suit: 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
la source
Le bit relatif à l'ajout d'une icône de barre latérale personnalisée pour un dossier nécessite l'installation de l'application, ou peut-il simplement être effectué seul? Aussi, savez-vous si cela fonctionnera avec Yosemite lors de la sortie?
dhruveonmars
1
J'ai juste essayé d'ajouter ma propre icône et cela n'a pas fonctionné. J'ai ensuite installé l'application SideEffect qui rend les icônes colorées et mon icône personnalisée est apparue. Désinstaller l'application et mon icône avait disparu.
Pahnev
1

Dropbox utilise la technique d'injection de code du Finder pour personnaliser l'icône de la barre latérale (et ajouter des éléments au menu contextuel, et ajouter un bouton à la barre supérieure du Finder). Et il n'y a pas de bon moyen de personnaliser l'icône de la barre latérale depuis 10.7.

Dans Yosemite, Apple a ajouté certaines API pour pouvoir personnaliser le menu contextuel du Finder et l'élément de la barre d'outils, mais je ne suis pas sûr de la barre latérale.

Nickolay Olshevsky
la source
En parlant de Yosemite, je pense que Dropbox utilise désormais une extension Finder Sync pour s’intégrer au Finder ... mais je ne vois rien d’évident dans la documentation de cette fonctionnalité concernant la fourniture d’une icône de barre latérale personnalisée (les icônes de barre d’outils personnalisées sont prises en charge) ... Donc, le hack peut encore être en place.
Dan J
Bien sûr, cela s'appelle extension de synchronisation du Finder. Mais cela ne permet pas l'icône de la barre latérale. Cependant, j'ai lu la documentation en diagonale, donc j'ai probablement manqué quelque chose.
Nickolay Olshevsky
0

Le programme d'installation de Dropbox en met un ici et pas le programme d'installation de Google Drive.

Il suffit de faire glisser un dossier dans la barre latérale pour que cela colle, aucun installateur n’est nécessaire.

Hiltmon
la source
10
Je pense que la question concerne spécifiquement l'icône.
Asmeurer
Ouais, ça ne
règle
2
Je donnerais un autre vote positif si je le pouvais. Il ne s'agit que de code et le programme d'installation de Dropbox installe cette fonctionnalité lorsqu'elle s'exécute en arrière-plan. C'est comme organiser une fête et inviter deux invités. L'un laisse sa carte de visite sur votre commode, l'autre pas. Ce n'est pas le propriétaire qui a fait le choix, ce sont les invités qui se sont comportés différemment.
bmike
2
@bmike, la deuxième partie de la question était la suivante: "Comment puis-je personnaliser les icônes utilisées par les dossiers dans la barre latérale?"
Baumr
0

J'ai pu obtenir une icône de téléchargement native dans la barre de menu pour un dossier de téléchargements déplacé. Le processus n'était pas facile et il est décrit ici: https://github.com/w0lfschild/colorfulSidebar_9/issues/1 Il s'appuie sur mySIMB et colouredSidebar. Il y a 3 ans, j'ai abandonné la configuration de l'icône native de téléchargements. Aujourd'hui, j'ai décidé de donner une autre chance et finalement, ça fonctionne.

Sassan
la source