Я хотел бы исследовать некоторые новые настройки, которые могут быть сделаны с помощью команды "запись по умолчанию" в OS X(ML).
Что я могу сделать, чтобы найти их самому, вместо того, чтобы охотиться в Интернете на известные хитрости?
Я хотел бы исследовать некоторые новые настройки, которые могут быть сделаны с помощью команды "запись по умолчанию" в OS X(ML).
Что я могу сделать, чтобы найти их самому, вместо того, чтобы охотиться в Интернете на известные хитрости?
Отказ от ответственности: я являюсь автором ~/.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, который можно использовать для поиска скрытых настроек.
Еще одна строковая команда:
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:'
Из вашего вопроса я предположил, что вы хотите изучить настройки / настройки приложения. Вы можете прочитать настройки приложения с помощью этой тривиальной команды
defaults read NSGlobalDomain
или же
defaults read com.google.Chrome
для чтения настроек записи Chrome из настроек по умолчанию, которые вы запросили.