Как изучить дополнительные настройки по умолчанию написать твики на OS X?

13

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

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

Том С
источник

Ответы:

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;отлично работает здесь.
Матиас Биненс
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:'
LRI
источник
-1

Из вашего вопроса я предположил, что вы хотите изучить настройки / настройки приложения. Вы можете прочитать настройки приложения с помощью этой тривиальной команды

defaults read NSGlobalDomain

или

defaults read com.google.Chrome чтобы прочитать настройки записи Chrome из значений по умолчанию, введите команду, которую вы запросили.

Mr.Shan0
источник