如何在OS X上探索更多默认写调整?


13

我想探索一些新的调整,这些调整可以通过OS X(ML)中的“默认写入”命令来完成。

我该怎么做才能找到自己,而不是在网上寻找已知的调整?

Answers:


20

免责声明:我的作者~/.osx,集合defaults 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的工具,可用于查找隐藏的首选项。


1
非常感谢您,我无法相信您在回复我!我很早以前就知道您在github上的好名单。非常非常感谢你!现在尝试一下。
汤姆小号

2
@Lri FWIW,我上周完成了干净的Mountain Lion安装,defaults read;在这里工作正常。
Mathias Bynens 2012年

0

另一个字符串命令:

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实时显示其他文件系统更改。

默认值有一个find子命令:

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

头文件通常包含首选项键的定义:

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

-1

我从您的问题中假设的是,您想探索应用程序的调整/设置。您可以使用此简单命令读取应用程序的首选项

defaults read NSGlobalDomain

要么

defaults read com.google.Chrome 从您要求的默认写入命令中读取chrome可写的首选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.