Réponses:
Avertissement: je suis l'auteur d' ~/.osx
une collection de defaults write
paramètres . Ce sont les techniques que j'utilise pour trouver les paramètres. Faites-moi savoir s'il existe une méthode meilleure / plus facile que je n'ai pas mentionnée ici!
Pour la plupart des paramètres non masqués, voici comment trouver les bonnes clés de préférence dans Terminal.app:
defaults read > a
# Change the setting
defaults read > b
diff a b
Pour les paramètres cachés, cela devient plus délicat. Vous pouvez utiliser l' strings
utilitaire de ligne de commande sur n'importe quel exécutable binaire et voir si le texte résultant ressemble à une clé de préférence. Par exemple:
strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
Voici un autre exemple qui examinera tous les .framework
fichiers /System/Library/Frameworks/
et filtrera quelque peu la sortie:
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
Il existe également un outil appelé GDB qui peut être utilisé pour trouver des préférences cachées.
defaults read;
fonctionne très bien ici.
Une autre commande de chaînes:
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 cfprefsd
montre quelles listes de propriétés sont modifiées. Vous pouvez utiliser fseventer pour afficher d'autres modifications du système de fichiers en temps réel.
par défaut a une sous-commande find:
$ defaults find nsquitalw
Found 1 keys in domain 'Apple Global Domain': {
NSQuitAlwaysKeepsWindows = 1;
}
Les fichiers d'en-tête contiennent souvent des définitions pour les clés de préférence:
grep PreferenceKey -r ~/Code/Source/WebKit/ | grep '\.h:'
Ce que j'ai supposé de votre question, c'est que vous voulez explorer les réglages / paramètres d'une application. Vous pouvez lire les préférences d'une application avec cette commande triviale
defaults read NSGlobalDomain
ou
defaults read com.google.Chrome
pour lire les préférences inscriptibles de chrome à partir de la commande d'écriture par défaut que vous avez demandée.