Aggiunta di pulsanti alla barra degli strumenti Finder?
Domanda
Dropbox ha l'opzione di aggiungere un pulsante alla barra degli strumenti Finder. Appare anche nella finestra "personalizza la barra degli strumenti ...". Non riesco a trovare alcuna documentazione su come è fatto questo genere di cose ... qualcuno sa come farlo o qualcuno può indicarmi una documentazione o un codice di esempio?
Modifica uno:
Immagino che un inizio sarebbe trovare la posizione delle icone esistenti e qualsiasi codice correlato.
Ho notato che Dropbox ha file in Library/DropboxhelperTools/Dropbox_U501 chiamato Mach_inject_bundle_stub.bundle e FinderloadBundle che potrebbero fare la magia. Dropbox sta anche mettendo il badge "Tick" sulle icone di Finder. Questo codice potrebbe essere coinvolto: github.com/rentzsch/mach_star
Modifica due: A Dropbox Talk di Rian Hunter sul processo è qui, intorno alle 15:30http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-how-dropbox-did-it-and-how-python-helped-4896698
Guardando nel file DropboxBundle in Dropbox_U501 mostra le icone e un po 'di codice compilato. Il codice suggerisce che Rian Hunter è l'autore: http://twitter.com/timeserena
Rian ha la sua versione del codice Mach Star sul suo github - https://github.com/rianhunter/mach_star - Anche se sembra molto più vecchio
Modifica tre
C'era un "seminario di iniezione di codice" a Stanford qualche settimana fa - http://stanfordacm.com/past/ - Ospitato da Rian. Se qualcuno ha appunti da questo per favore fatemelo sapere!
Soluzione
Dropbox utilizzava la magia priva di documenti. Non esiste un modo ufficialmente supportato per farlo; Il più vicino che puoi ottenere senza reverse ingegneria è Servizi.
(AGGIORNAMENTO: A partire da MacOS 10.11, ciò che Dropbox stava facendo non è più possibile. La protezione dell'integrità del sistema ora impedisce l'iniezione del codice nei processi di sistema, come il Finder.)
Altri suggerimenti
Puoi usare Finder Sync Estensione dell'app(A partire da OS X V10.10).
Un'estensione di sincronizzazione di Finder può:
- Aggiungere, rimuovere e aggiornare badge ed etichette sugli articoli in una cartella monitorata.
- Visualizza un menu contestuale quando il controllo dell'utente fa clic su un elemento all'interno di una cartella monitorata.
- Aggiungi un pulsante personalizzato alla barra degli strumenti del Finder.
Il discorso di Rian a Pycon 2011 (su Blip.tv) non spiega altro che "Finder inverse ingegnerizzato". Sebbene le cose Mach_Star siano preziose, non spiega ancora come far funzionare un'icona della barra laterale. E il "Workshop di iniezione di codice" di Stanford non ha pubblicato alcun contenuto su questo metodo.
Ho nm'd e class-dump di entrambi i bundle che Dropbox installa per ciascun utente sotto /libreria /dropboxhelpertools e l'output fornisce buone informazioni. Se ci torno, finirò la mia ricerca e la pubblicherò. Le probabilità sono che non lo sarà per un po 'di tempo, quindi spero che questa spinta aiuti qualcun altro.
Una risposta intermedia facile che può essere adeguata per alcune persone è semplicemente creare icone che assomigliano ai pulsanti.
Ad esempio, ho creato "nuovo file di testo qui" e "nuovo terminale icone" per il mio ricerca:
Il metodo può essere trovato qui.
Lo svantaggio è che devono essere quadrati e non avere animazioni/menu o presentarsi in "personalizzare la barra degli strumenti" ecc.