Come elencare tutte le chiavi .plist disponibili su una determinata applicazione di dominio con il comando defaults?

16

Voglio conoscere tutte le chiavi (elenco delle proprietà) che sono disponibili su alcune applicazioni di dominio, ad esempio potrei elencare la chiave disponibile per com.apple.dock inserendo questo comando:

$ defaults read com.apple.dock

ma in qualche modo l'output di questo comando mostrava solo la chiave dell'elenco delle proprietà attive, e tuttavia non tutte le chiavi disponibili per com.apple.dock sono elencate qui.

Chiunque può aiutarmi in questo?

    
posta wongacid 03.08.2011 - 06:59
fonte

6 risposte

7

Questo non è un compito banale, se ricordo correttamente le persone eseguono l'utilità strings nella riga di comando contro un'applicazione e cercano elementi che corrispondono a una struttura simile a com.domain.FeatureName. (com.apple.iTunes, ch.cyberduck.CyberDuck, com.panic.Coda, ecc.)

Il modo più semplice per gestire queste sostituzioni è il pannello delle preferenze di sistema con il nome di Segreti . Utilizzando questo si installa un riquadro delle preferenze in Preferenze di sistema e si fornisce un'interfaccia per la scelta di un'applicazione e la modifica delle impostazioni in base alle proprie preferenze.

    
risposta data 16.08.2011 - 23:00
fonte
5

Non c'è davvero una nozione di chiavi "disponibili". L'applicazione è libera di leggere tutte le chiavi che vuole. La maggior parte delle persone scopre le chiavi di default "segrete" usando strings per consultare il binario dell'applicazione per vedere quali chiavi proverà a leggere.

    
risposta data 03.08.2011 - 09:24
fonte
5

Trovato un sito web dedicato a questi comandi di scrittura predefiniti di Mac OS X, alcuni comodi comandi per Mac OS X Lion & Mountain Lion.

link

    
risposta data 26.08.2012 - 18:12
fonte
4

La maggior parte delle persone qui vuole fare tutto tramite la riga di comando, ma ho un suggerimento più pratico.

Questi due programmi descritti di seguito elencano una grande quantità delle note funzionalità personalizzabili della riga di comando delle applicazioni Mac OS X, ordinate per applicazione o funzione. Il vantaggio è che l'elenco delle funzioni è fornito per te; non devi andare a cercare su Google per scoprire quali sono le funzioni e le sequenze della riga di comando necessarie per modificarle.

Esistono diverse applicazioni freeware o commerciali che forniscono un'interfaccia utente grafica che elenca la maggior parte delle opzioni di personalizzazione che possono essere modificate tramite il Terminale. Per attivare una di queste funzionalità, usando questi programmi che sto descrivendo, lo fai all'interno della GUI dell'applicazione e non hai affatto bisogno di usare la riga di comando. Non devi sapere nulla su defaults write o .plist file.

Due di queste app sono:

TinkerTool

che è gratuito e

MacPilot

che è appena stato aggiornato con le nuove funzionalità di Lion e costa US $ 20,00.

Questi sono i programmi che possiedo e uso.

Scarica il TinkerTool gratuito e la versione di prova di MacPilot e fai clic su tutte le schede per visualizzare tutte le innumerevoli funzionalità che puoi personalizzare. Ce ne sono troppi da elencare qui.

Aggiornamento

Lo sviluppatore Frederik Wiker ha rilasciato applicazioni freeware (donazioni accettate) per la creazione di personalizzazioni di scrittura predefinite specifiche per Lion e Mountain Lion; molti di questi funzionano anche bene con Mavericks (Mac OS X 10.9).

Scaricalo e vedi quali personalizzazioni sono disponibili per te.

Lion Tweaks

Mountain Tweaks

    
risposta data 17.08.2011 - 01:20
fonte
3

Forse una spiegazione abbastanza lunga su come funzionano le cose potrebbe chiarire la ricerca tua e di altri di queste preferenze "nascoste".

La maggior parte delle applicazioni leggerà i file delle preferenze una volta all'inizio e lo strumento defaults esiste per garantire che i file delle preferenze siano una struttura valida e non contengano errori di sintassi. (Consente inoltre al sistema di modificare il modo in cui le chiavi vengono memorizzate e le persone non devono conoscere i dettagli dell'implementazione e possono utilizzare impostazioni predefinite comando per eseguire tutte le operazioni di lettura e scrittura.)

Lo stile di inglese e le guide grammaticali assicurano che le parole che digito qui siano significative per l'oratore inglese medio e la standardizzazione del sistema di default imposta un framework in modo che tutti sappiano cosa aspettarsi. La formattazione delle liste di preferenze è molto più rigida e matematica di una lingua umana, ma i concetti sono simili.

Il sistema di default dell'utente di Mac OS X è un archivio di valori chiave (o database, se preferisci).

Puoi scrivere qualsiasi cosa in questi negozi a valore chiave, un sonetto di Shakespeare, numeri, una lista della spesa. Se il programma è codificato per cercare una chiave specifica, leggerà il valore memorizzato. Se non sta cercando quella chiave, il suo valore rimane lì inutilizzato e non letto.

Questo mostra come sapere quali valori potrebbe essere cercato da un programma specifico all'avvio. Si riduce a te o devi conoscere il valore o decodificare il programma.

Esistono molti strumenti per esaminare un programma e provare a capire quali stringhe (le chiavi) sono incorporate, come strings e dbx / lldb, nonché il collegamento nella propria libreria per scaricare la struttura interna di uno specifico programma.

In pratica, alcune cose che sono necessarie per i test vengono aggiunte in questo modo "nascosto" in modo che non è possibile guardare oltre il pannello delle preferenze del programma e vedere queste nuove funzionalità che non sono pronte per un uso ampio. In un certo senso, non è affatto semplice ottenere un elenco completo a meno che l'autore di quel programma non rilasci il codice sorgente o altrimenti documenti queste impostazioni pubblicamente.

Quando leggi l'archivio di default per una particolare app - stai leggendo il "libro" che è stato scritto quando l'app ha creato il suo set predefinito o le impostazioni fornite con Mac OS X. Ecco perché non lo fai ricevere l'esaustivo elenco di cose che sono realisticamente possibili cambiare con quella applicazione.

    
risposta data 17.08.2011 - 19:18
fonte
2

Per quanto ne so, un'applicazione memorizzerà solo una nuova chiave se differisce dai valori predefiniti, almeno questo è ciò che fanno le mie app. Questo non è qualcosa che può essere controllato facilmente in quanto fa parte del framework User Defaults, in quanto l'app comunica all'utente solo ciò che ha bisogno di essere archiviato e si occupa del resto. Non credo che le informazioni che stai cercando possano essere facilmente ottenute, purtroppo. Potrebbe essere bello avere accesso a questo.

    
risposta data 03.08.2011 - 07:42
fonte

Leggi altre domande sui tag