9

Я хотел бы исследовать некоторые новые настройки, которые могут быть сделаны с помощью команды "запись по умолчанию" в OS X(ML).

Что я могу сделать, чтобы найти их самому, вместо того, чтобы охотиться в Интернете на известные хитрости?

3 ответа3

17

Отказ от ответственности: я являюсь автором ~/.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, который можно использовать для поиска скрытых настроек.

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 из настроек по умолчанию, которые вы запросили.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .