Как изучить дополнительные настройки по умолчанию написать твики на 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:'

-1

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

defaults read NSGlobalDomain

или

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.