web-dev-qa-db-ja.com

OS Xでより多くのデフォルトの書き込み調整を調べる方法は?

OS X(ML)の「defaultswrite」コマンドで実行できるいくつかの新しい調整について調べたいと思います。

既知の調整をオンラインで探すのではなく、自分でそれらを見つけるために何ができますか?

13
Tom S

免責事項:私は ~/.osxdefaults write設定のコレクション の作成者です。これらは私が設定を見つけるために使用するテクニックです。ここで触れなかった、より良い/より簡単な方法があるかどうか教えてください。


非表示になっていないほとんどの設定では、Terminal.appで正しい設定キーを見つける方法は次のとおりです。

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

非表示の設定の場合は、注意が必要です。任意のバイナリ実行可能ファイルでコマンドラインstringsユーティリティを使用して、結果のテキストのいずれかが設定キーのように見えるかどうかを確認できます。例えば。:

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

.framework内のすべての/System/Library/Frameworks/ファイルを調べて、出力をいくらかフィルタリングする別の例を次に示します。

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

[〜#〜] gdb [〜#〜] というツールもあります。これを使用して非表示の設定を見つけることができます。

20
Mathias Bynens

別の文字列コマンド:

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は、変更されたプロパティリストを示します。 fseventer を使用して、他のファイルシステムの変更をリアルタイムで表示できます。

defaultsにはfindサブコマンドがあります:

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

ヘッダーファイルには、多くの場合、設定キーの定義が含まれています。

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