Respostas:
Isenção de responsabilidade: sou o autor de ~/.osxuma coleção de defaults writeconfigurações . Estas são as técnicas que eu uso para encontrar configurações. Deixe-me saber se existe um método melhor / mais fácil que não mencionei aqui!
Para a maioria das configurações não ocultas, é assim que você pode encontrar as chaves de preferência corretas no Terminal.app:
defaults read > a
# Change the setting
defaults read > b
diff a b
Para configurações ocultas, fica mais complicado. Você pode usar o stringsutilitário de linha de comando em qualquer executável binário e ver se algum texto resultante se parece com uma chave de preferência. Por exemplo:
strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
Aqui está outro exemplo que examinará todos os .frameworkarquivos /System/Library/Frameworks/e filtrará um pouco a saída:
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
Há também uma ferramenta chamada GDB que pode ser usada para encontrar preferências ocultas.
defaults read;funciona bem aqui.
Outro comando de strings:
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 quais listas de propriedades são modificadas. Você pode usar o fseventer para exibir outras alterações do sistema de arquivos em tempo real.
O padrão tem um subcomando find:
$ defaults find nsquitalw
Found 1 keys in domain 'Apple Global Domain': {
NSQuitAlwaysKeepsWindows = 1;
}
Os arquivos de cabeçalho geralmente contêm definições para chaves de preferência:
grep PreferenceKey -r ~/Code/Source/WebKit/ | grep '\.h:'
O que assumi da sua pergunta é que você deseja explorar ajustes / configurações de um aplicativo. Você pode ler as preferências de um aplicativo com este comando trivial
defaults read NSGlobalDomain
ou
defaults read com.google.Chrome para ler as preferências graváveis do Chrome nos comandos de gravação padrão que você solicitou.