Comment explorer plus de réglages d'écriture par défaut sur OS X?

13

Je voudrais explorer de nouveaux ajustements qui peuvent être effectués par la commande "écriture par défaut" dans OS X (ML).

Que puis-je faire pour les découvrir moi-même plutôt que de rechercher en ligne des ajustements connus?

Tom S
la source

Réponses:

20

Avertissement: je suis l'auteur d' ~/.osxune collection de defaults writeparamètres . Ce sont les techniques que j'utilise pour trouver les paramètres. Faites-moi savoir s'il existe une méthode meilleure / plus facile que je n'ai pas mentionnée ici!


Pour la plupart des paramètres non masqués, voici comment trouver les bonnes clés de préférence dans Terminal.app:

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

Pour les paramètres cachés, cela devient plus délicat. Vous pouvez utiliser l' stringsutilitaire de ligne de commande sur n'importe quel exécutable binaire et voir si le texte résultant ressemble à une clé de préférence. Par exemple:

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

Voici un autre exemple qui examinera tous les .frameworkfichiers /System/Library/Frameworks/et filtrera quelque peu la sortie:

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

Il existe également un outil appelé GDB qui peut être utilisé pour trouver des préférences cachées.

Mathias Bynens
la source
1
Merci beaucoup et je ne peux pas croire que vous me répondiez! Je connaissais votre belle liste sur github il y a longtemps. Merci beaucoup! Je vais essayer ça maintenant.
Tom S
2
@Lri FWIW, j'ai fait une installation propre de Mountain Lion la semaine dernière et defaults read;fonctionne très bien ici.
Mathias Bynens
0

Une autre commande de chaînes:

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 cfprefsdmontre quelles listes de propriétés sont modifiées. Vous pouvez utiliser fseventer pour afficher d'autres modifications du système de fichiers en temps réel.

par défaut a une sous-commande find:

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

Les fichiers d'en-tête contiennent souvent des définitions pour les clés de préférence:

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

Ce que j'ai supposé de votre question, c'est que vous voulez explorer les réglages / paramètres d'une application. Vous pouvez lire les préférences d'une application avec cette commande triviale

defaults read NSGlobalDomain

ou

defaults read com.google.Chrome pour lire les préférences inscriptibles de chrome à partir de la commande d'écriture par défaut que vous avez demandée.

Mr.Shan0
la source