Wie kommt es, dass Dropbox ein Symbol in der Finder-Seitenleiste erhält?

40

Wie kommt es, dass Dropbox in der Seitenleiste des Finders ein nicht generisches Symbol erhält, wenn andere Verzeichnisse wie Google Drive und Sites (ursprünglich in OS X vor Lion) dasselbe generische Symbol haben?

Bildbeschreibung hier eingeben

Wie kann ich die von den Ordnern in der Seitenleiste verwendeten Symbole anpassen? Unter OS X wurden dort einzelne Symbole aller Ordner angezeigt - nicht mehr.

Baumr
quelle

Antworten:

36

Wie Sie bemerkt haben, werden in neueren Versionen von OS X nur allgemeine Ordnersymbole in der Seitenleiste angezeigt. Warum erhält Dropbox dann eine Sonderbehandlung?

Die kurze Antwort lautet, dass Dropbox undokumentierte APIs verwendet, um dies zu erreichen. Im nicht-technischen Sinne handelt es sich um einen speziellen Hack, der von der Dropbox-Anwendung installiert wird.


Einige neugierige Leute von StackOverflow haben den von Dropbox verwendeten Mechanismus gefunden: good ol 'mach_inject. Das gleiche Bundle enthält sowohl das Symbolleistenelement als auch das Seitenleistensymbol.

Wenn Sie neugierig sind, befinden sich die Ressourcendateien hier (zumindest auf meinem System):

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

Es ist klar, dass Dropbox große Anstrengungen unternimmt, um sich nahtlos in den Finder zu integrieren. In anderen normalen Ordnern sind nur allgemeine Symbole in der Seitenleiste enthalten, da sie nicht entsprechend behandelt werden.


Edit 01.10.2015: Ab Yosemite (10.10) gibt es eine neue, sanktionierte Finder Sync-API für die Integration, wie in einer anderen Antwort bereits erwähnt. In El Capitan (10.11) lässt der Systemintegritätsschutz den alten Ansatz von mach_inject nicht zu.

jmk
quelle
5
Google sollte das gleiche mit Drive tun :)
Baumr
Die Integration von Dropbox Finder funktioniert mit El Capitan. Ich habe die Kontextmenüs, die Abzeichen und das benutzerdefinierte Symbol in der Seitenleiste. Welche Version des Clients verwenden Sie?
Matteo
@ Matteo: Das ist interessant, als ich die Version (v3.10.6) überprüfte, fing es an zu funktionieren! Ich versichere dir, es hat vorher nicht funktioniert. Interessant ...
jmk
1
@ Matteo: Aha, Leseverständnis meinerseits scheitern. Jemand hat bereits mit der aktualisierten API unten gepostet. Danke für die Korrektur!
JMK
10

In der Dokumentation zur Finder Sync Extension heißt es :

Sie können auch die API des Erweiterungspunkts verwenden, um dem Finder-Fenster eine Symbolleistenschaltfläche oder ein Seitenleistensymbol für den überwachten Ordner hinzuzufügen .

Ich denke, dies ist, was Dropbox verwendet, um dies und einige / alle anderen Funktionen zu erreichen, die durch diese Erweiterung ermöglicht werden. Zum Beispiel können Sie auch:

  • Registrieren Sie eine Reihe von Ordnern für die Überwachung.
  • Erhalten Sie Benachrichtigungen, wenn der Benutzer den Inhalt eines überwachten Ordners startet oder stoppt. Beispielsweise erhält die Erweiterung eine Benachrichtigung, wenn der Benutzer einen überwachten Ordner im Finder oder in einem Dialogfeld zum Öffnen oder Speichern öffnet.
  • Hinzufügen, Entfernen und Aktualisieren von Kennzeichnungen und Etiketten für Elemente in einem überwachten Ordner.
  • Zeigen Sie ein Kontextmenü an, wenn der Benutzer bei gedrückter Ctrl-Taste auf ein Element in einem überwachten Ordner klickt.
  • Fügen Sie der Symbolleiste des Finders eine benutzerdefinierte Schaltfläche hinzu.

Bearbeiten:

Wie Mugen weiter unten erwähnt, wird El Capitan keine Code-Injection zulassen, was FinderSync zur einzigen Option für die Zukunft macht. Wenn FinderSync erst ab 10.10 verfügbar ist, ist es am besten, wenn Sie Folgendes eingeben:

if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
doovers
quelle
Das scheint mit der bestbewerteten Antwort zu kollidieren, irgendwelche Kommentare?
Baumr
3
@Baumr Ich spekuliere hier nur, aber ich würde annehmen, dass die Antwort von jmk zu der Zeit wahrscheinlich richtig war (und möglicherweise immer noch richtig ist), aber dass es jetzt wahrscheinlicher ist, dass Dropbox die 'offizielle' Finder-Sync-Erweiterung seit der Veröffentlichung von Yosemite verwendet. Außerdem würde ich denken, dass dies für jemanden, der versucht, dieselbe Funktionalität in seiner eigenen App zu erreichen, eine nützlichere Lösung wäre, da es dokumentiert ist.
Doovers
Hört sich so an, als hättest du recht - wie kann man das bestätigen?
Baumr
2
In El-Capitan können wir keinen Code mehr einfügen, daher ist FinderSync die einzige Option
Mugen
1
@ Baumr da FinderSync-Erweiterung nur in 10.10+ verfügbar ist, denke ich, es wäre am besten, es zu tun:if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
Mugen
2

Installieren Sie die neueste Xtra Finder-App von - http://www.trankynam.com/xtrafinder/

Aktivieren Sie die Option "Bunte Symbole in der Seitenleiste anzeigen". Sie befindet sich unter einem Textfeld mit der maximalen Breite.

Für andere Symbole in der Seitenleiste

Ersetzen Sie die Dateien hier: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ Ordner enthält die verwendeten grauen ICNS zusätzlich zu [nicht verwendeten] 1024x1024-ICNS-Farbdateien. Jede ICNS-Datei muss die folgenden Größen unterstützen:

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

Wenn Sie der Seitenleiste einen benutzerdefinierten Ordner hinzugefügt haben, können Sie auch dessen Symbol ändern. Angenommen, der Ordnername lautet "Software". Bereiten Sie eine ICNS-Datei mit dem Namen SidebarSoftwares.icns im oben genannten Verzeichnis vor.

Grundsätzlich muss die icns-Datei SidebarFoldername.icns heißen, wobei Sidebar konstant bleibt und Sie den entsprechenden Ordnernamen eingeben.

Für DropBox

Wenden Sie die ICNS-Datei auf / Users / admin / Dropbox /Applications/Dropbox.app /Applications/Dropbox.app/Contents/Resources/box.icns an (müssen Sie diese Datei durch die gewünschte ersetzen)

DropBox Finder SideBar Icons

Navigieren Sie zu /Library/DropboxHelperTools/Dropbox_u502/DropboxBundle.bundle/Contents/Resources

Hier müssen Sie Folgendes ersetzen: toolbar.tiff (32x32 Pixel, 72 DPI)

sidebar.tiff (64x64 Pixel, 72 DPI)

contextmenu.tiff (32x32 Pixel, 72 DPI)

toolbar_large.png (19x19 Pixel, 72 DPI)

sidebar_blue.png (16x16 Pixel, 72 DPI)

Tech One
quelle
Erfordert das Hinzufügen eines benutzerdefinierten Seitenleistensymbols für einen Ordner, dass die App installiert wird, oder kann es einfach alleine durchgeführt werden? Weißt du auch, ob dies mit Yosemite funktioniert, wenn es veröffentlicht wird?
Dhruveonmars
1
Ich habe gerade versucht, mein eigenes Symbol hinzuzufügen, aber es hat nicht funktioniert. Ich habe dann die SideEffect-App installiert, mit der die Symbole farbig dargestellt werden und mein benutzerdefiniertes Symbol angezeigt wird. Deinstallierte die App und mein Icon war weg.
Pahnev
1

Dropbox verwendet die Finder-Codeinjektionstechnik, um das Seitenleistensymbol anzupassen (und Elemente zum Kontextmenü hinzuzufügen und die Schaltfläche zur oberen Leiste des Finders hinzuzufügen). Und es gibt keine gute Möglichkeit, das Seitenleistensymbol seit 10.7 anzupassen.

In Yosemite hat Apple einige APIs hinzugefügt, um das Kontextmenü und das Symbolleistenelement von Finder anpassen zu können, aber ich bin nicht sicher, welche Seitenleiste verwendet wird.

Nickolay Olshevsky
quelle
Apropos Yosemite: Ich glaube, Dropbox verwendet jetzt eine Finder Sync-Erweiterung zur Integration in den Finder. In den Dokumenten zu dieser Funktion wird jedoch nichts über die Bereitstellung eines benutzerdefinierten Seitenleistensymbols angezeigt (benutzerdefinierte Symbolleistensymbole werden unterstützt). Der Hack kann also noch vorhanden sein.
Dan J
Klar, das nennt man Finder Sync Extension. Es ist jedoch kein Seitenleistensymbol zulässig. Allerdings habe ich die Dokumentation diagonal gelesen, also wahrscheinlich etwas verpasst.
Nickolay Olshevsky
0

Das Dropbox-Installationsprogramm installiert eine und das Google Drive-Installationsprogramm nicht.

Ziehen Sie einfach einen Ordner in die Seitenleiste und er bleibt hängen, es ist kein Installationsprogramm erforderlich.

Hiltmon
quelle
10
Ich denke, die Frage bezieht sich speziell auf das Symbol.
Asmeurer
Ja, das beantwortet nicht die Frage
Baumr
2
Ich würde dem noch eine Gegenstimme geben, wenn ich könnte. Es ist nur Code und das Dropbox-Installationsprogramm installiert diese Funktion, wenn sie im Hintergrund ausgeführt wird. Es ist wie eine Party und Sie laden zwei Gäste ein. Einer lässt seine Visitenkarte auf Ihrer Kommode, der andere nicht. Es ist nicht der Besitzer, der die Wahl getroffen hat, sondern die Gäste, die sich anders verhalten haben.
bmike
2
@bmike, der zweite Teil der Frage lautete: "Wie kann ich die von den Ordnern in der Seitenleiste verwendeten Symbole anpassen?"
Baumr
0

Ich konnte das native Download-Symbol in der Siderbar für einen verschobenen Download-Ordner erhalten. Der Prozess war nicht einfach und wird hier beschrieben: https://github.com/w0lfschild/colorfulSidebar_9/issues/1 Er basiert auf mySIMB und colorfulSidebar. Vor 3 Jahren habe ich es aufgegeben, das native Downloads-Symbol einzustellen. Heute habe ich beschlossen, eine weitere Chance zu geben und irgendwann funktioniert es.

Sassan
quelle