Come esplorare altre impostazioni predefinite scrivere modifiche su OS X?


13

Vorrei esplorare alcune nuove modifiche che possono essere fatte con il comando "defaults write" in OS X (ML).

Cosa posso fare per scoprirli da solo piuttosto che cercare online modifiche conosciute?

Risposte:


20

Disclaimer: sono l'autore di ~/.osxuna raccolta di defaults writeimpostazioni . Queste sono le tecniche che utilizzo per trovare le impostazioni. Fammi sapere se esiste un metodo migliore / più semplice che non ho menzionato qui!


Per la maggior parte delle impostazioni non nascoste, ecco come trovare le chiavi delle preferenze corrette in Terminal.app:

defaults read > a
# Change the setting
defaults read > b
diff a b

Per le impostazioni nascoste, diventa più complicato. È possibile utilizzare l' stringsutilità della riga di comando su qualsiasi eseguibile binario e vedere se il testo risultante sembra una chiave di preferenza. Per esempio:

strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Ecco un altro esempio che esaminerà tutti i .frameworkfile /System/Library/Frameworks/e filtrerà un po 'l'output:

strings /System/Library/Frameworks/*.framework/Versions/Current/* /System/Library/Frameworks/*/Frameworks/*/Versions/Current/* 2> /dev/null | grep -E '^[a-zA-Z0-9_.-]{10,80}$' | sort | uniq

C'è anche uno strumento chiamato GDB che può essere utilizzato per trovare preferenze nascoste.


1
Grazie mille e non riesco a credere che mi stai rispondendo! Conoscevo la tua bella lista su github molto tempo fa a proposito. Grazie mille! Ci proverò ora.
Tom S

2
@Lri FWIW, ho fatto un'installazione pulita di Mountain Lion solo la scorsa settimana e defaults read;qui funziona perfettamente.
Mathias Bynens,

0

Un altro comando di stringhe:

for f in $(mdfind kMDItemContentType==public.unix-executable -onlyin /System/Library/); do strings $f 2> /dev/null | grep -E '^[[:alnum:]_.-]{10,80}$' | grep ^Apple | sort -u | sed "s/^/${f##*/} /g"; done

sudo opensnoop -n cfprefsdmostra quali elenchi di proprietà sono stati modificati. È possibile utilizzare fseventer per visualizzare altre modifiche al file system in tempo reale.

il default ha un sottocomando find:

$ defaults find nsquitalw
Found 1 keys in domain 'Apple Global Domain': {
    NSQuitAlwaysKeepsWindows = 1;
}

I file di intestazione contengono spesso definizioni per le chiavi delle preferenze:

grep PreferenceKey -r ~/Code/Source/WebKit/ | grep '\.h:'

-1

Quello che ho assunto dalla tua domanda è che vuoi esplorare le modifiche / impostazioni di un'applicazione. Puoi leggere le preferenze di un'app con questo comando banale

defaults read NSGlobalDomain

o

defaults read com.google.Chrome per leggere le preferenze scrivibili di Chrome dai valori predefiniti, scrivere il comando richiesto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.