Como explorar mais ajustes de gravação de padrões no OS X?

9

Eu gostaria de explorar alguns novos ajustes que podem ser feitos pelo comando "defaults write" no OS X (ML).

O que posso fazer para descobri-los em vez de procurar online por ajustes conhecidos?

    
por Tom S 31.07.2012 / 12:48

3 respostas

18

Aviso: eu sou o autor de ~/.osx , uma coleção de defaults write configurações . Estas são as técnicas que uso para encontrar configurações. Deixe-me saber se existe um método melhor / mais fácil que eu 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 utilitário strings da linha de comandos 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

Veja outro exemplo que analisará todos os arquivos .framework em /System/Library/Frameworks/ e filtrará a saída de alguma forma:

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.

    
por 31.07.2012 / 13:02
0

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 cfprefsd mostra quais listas de propriedades são modificadas. Você pode usar o fseventer para exibir outras alterações no sistema de arquivos em tempo real.

defaults 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 as teclas de preferência:

grep PreferenceKey -r ~/Code/Source/WebKit/ | grep '\.h:'
    
por 04.09.2012 / 08:04
-1

O que eu supus 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 do comando writes padrão que você pediu.

    
por 03.02.2016 / 22:25