Ich möchte einige neue Verbesserungen untersuchen, die mit dem Befehl "Defaults Write" in OS X (ML) durchgeführt werden können.
Was kann ich tun, um sie selbst herauszufinden, anstatt online nach bekannten Verbesserungen zu suchen?
quelle
Ich möchte einige neue Verbesserungen untersuchen, die mit dem Befehl "Defaults Write" in OS X (ML) durchgeführt werden können.
Was kann ich tun, um sie selbst herauszufinden, anstatt online nach bekannten Verbesserungen zu suchen?
Haftungsausschluss: Ich bin der Autor ~/.osx
einer Sammlung von defaults write
Einstellungen . Dies sind die Techniken, mit denen ich Einstellungen finde. Lassen Sie mich wissen, ob es eine bessere / einfachere Methode gibt, die ich hier nicht erwähnt habe!
Für die meisten nicht ausgeblendeten Einstellungen finden Sie auf diese Weise die richtigen Voreinstellungsschlüssel in Terminal.app:
defaults read > a
# Change the setting
defaults read > b
diff a b
Bei versteckten Einstellungen wird es schwieriger. Sie können das Befehlszeilenprogramm strings
für jede ausführbare Binärdatei verwenden und prüfen, ob der resultierende Text wie ein Voreinstellungsschlüssel aussieht. Z.B:
strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
Hier ist ein weiteres Beispiel, das alle .framework
Dateien durchsucht /System/Library/Frameworks/
und die Ausgabe etwas filtert:
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
Es gibt auch ein Tool namens GDB , mit dem Sie versteckte Einstellungen finden können.
defaults read;
funktioniert hier einwandfrei .Ein weiterer Zeichenfolgenbefehl:
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
zeigt an, welche Eigenschaftslisten geändert wurden. Mit fseventer können Sie andere Dateisystemänderungen in Echtzeit anzeigen.Standardmäßig gibt es einen Unterbefehl find:
Header-Dateien enthalten häufig Definitionen für Voreinstellungsschlüssel:
quelle
Was ich von Ihrer Frage angenommen habe, ist, dass Sie Optimierungen / Einstellungen einer Anwendung untersuchen möchten. Mit diesem einfachen Befehl können Sie die Einstellungen einer App lesen
defaults read NSGlobalDomain
oder
defaults read com.google.Chrome
Um die von Chrome beschreibbaren Einstellungen aus den von Ihnen angeforderten Standard-Schreibbefehlen zu lesen.quelle