¿Cómo explorar más ajustes de escritura predeterminados en OS X?

13

Me gustaría explorar algunos nuevos ajustes que se pueden hacer con el comando "escritura predeterminada" en OS X (ML).

¿Qué puedo hacer para descubrirlos yo mismo en lugar de buscar en línea los ajustes conocidos?

Tom S
fuente

Respuestas:

20

Descargo de responsabilidad: soy el autor de ~/.osxuna colección de defaults writeconfiguraciones . Estas son las técnicas que utilizo para buscar configuraciones. ¡Avíseme si hay un método mejor / más fácil que no mencioné aquí!


Para la mayoría de las configuraciones no ocultas, así es como puede encontrar las claves de preferencia correctas en Terminal.app:

defaults read > a
# Change the setting
defaults read > b
diff a b

Para configuraciones ocultas, se vuelve más complicado. Puede usar la stringsutilidad de línea de comandos en cualquier ejecutable binario y ver si alguno de los textos resultantes parece una clave de preferencia. P.ej:

strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Aquí hay otro ejemplo que examinará todos los .frameworkarchivos /System/Library/Frameworks/y filtrará un poco la salida:

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

También hay una herramienta llamada GDB que se puede usar para encontrar preferencias ocultas.

Mathias Bynens
fuente
1
¡Muchas gracias y no puedo creer que me estés respondiendo! Sabía de tu bonita lista en Github hace mucho tiempo, por cierto. ¡Muchas muchas gracias! Intentaremos esto ahora.
Tom S
2
@Lri FWIW, hice una instalación limpia de Mountain Lion la semana pasada y defaults read;funciona bien aquí.
Mathias Bynens
0

Otro comando de cadenas:

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 cfprefsdmuestra qué listas de propiedades se modifican. Puede usar fseventer para mostrar otros cambios en el sistema de archivos en tiempo real.

los valores predeterminados tienen un subcomando find:

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

Los archivos de encabezado a menudo contienen definiciones para las claves de preferencia:

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

Lo que asumí de su pregunta es que desea explorar ajustes / configuraciones de una aplicación. Puede leer las preferencias de una aplicación con este comando trivial

defaults read NSGlobalDomain

o

defaults read com.google.Chrome para leer las preferencias de escritura de Chrome desde el comando de escritura predeterminado que solicitó.

Mr.Shan0
fuente