Ich möchte alle Schlüssel (Eigenschaftsliste) wissen, die in einer bestimmten Domänenanwendung verfügbar sind. Als Beispiel könnte ich die verfügbaren Schlüssel auflisten, indem ich com.apple.dock
diesen Befehl eingebe:
$ defaults read com.apple.dock
aber irgendwie zeigte die Ausgabe dieses Befehls nur den aktiven Eigenschaftslistenschlüssel und noch nicht alle verfügbaren Schlüssel, com.apple.dock
die dort aufgeführt sind.
Wer kann mir dabei helfen?
Dies ist keine triviale Aufgabe, wenn ich mich richtig erinnere, führen die Leute das strings
Dienstprogramm an der Befehlszeile gegen eine Anwendung aus und suchen nach Dingen, die einer ähnlichen Struktur wie com.domain.FeatureName entsprechen. (com.apple.iTunes, ch.cyberduck.CyberDuck, com.panic.Coda usw.)
Der wahrscheinlich einfachste Weg, diese Außerkraftsetzungen zu verwalten, ist ein Systemeinstellungsfenster namens Secrets . Wenn Sie dies verwenden, wird ein Einstellungsfenster in den Systemeinstellungen installiert und Sie erhalten eine Schnittstelle zum Auswählen einer Anwendung und zum Ändern ihrer Einstellungen nach Ihren speziellen Vorlieben.
Ich habe eine Website gefunden, die diesen standardmäßigen Schreibbefehlen von Mac OS X gewidmet ist, einige praktische Befehle für Mac OS X Lion und Mountain Lion.
Es gibt wirklich keine Vorstellung von "verfügbaren" Schlüsseln. Der Anwendung steht es frei, beliebige Schlüssel zu lesen. Die meisten Leute entdecken "geheime" Standardschlüssel, indem sie strings
die Binärdatei der Anwendung durchsuchen, um zu sehen, welche Schlüssel sie zu lesen versucht.
Die meisten Leute hier wollen alles über die Kommandozeile machen, aber ich habe einen praktischeren Vorschlag.
Diese beiden unten beschriebenen Programme listen viele der bekannten anpassbaren Befehlszeilenfunktionen von Mac OS X-Anwendungen auf, sortiert nach Anwendung oder Funktion. Der Vorteil ist, dass die Liste der Funktionen für Sie bereitgestellt wird; Sie müssen nicht Google durchsuchen, um herauszufinden, was die Funktionen sind und welche Befehlszeilensequenzen zum Ändern der einzelnen Funktionen erforderlich sind.
Es gibt mehrere Freeware- oder kommerzielle Anwendungen, die eine grafische Benutzeroberfläche bieten, die fast alle Anpassungsoptionen auflistet, die über das Terminal geändert werden können. Um eine dieser Funktionen mit diesen von mir beschriebenen Programmen zu aktivieren, tun Sie dies innerhalb der GUI der Anwendung und müssen überhaupt nicht die Befehlszeile verwenden. Sie müssen nichts über defaults write
oder .plist
Dateien wissen.
Zwei dieser Apps sind:
das ist kostenlos, und
das gerade mit neuen Lion-Funktionen aktualisiert wurde und 20,00 US-Dollar kostet.
Dies sind Programme, die ich besitze und verwende.
Laden Sie das kostenlose TinkerTool und die Testversion von MacPilot herunter und klicken Sie sich durch alle Registerkarten, um all die unzähligen Funktionen anzuzeigen, die Sie anpassen können. Es gibt zu viele, um sie hier aufzulisten.
Entwickler Frederik Wiker hat Freeware-Apps (Spenden akzeptiert) zum Erstellen von Standard-Schreibanpassungen speziell für Lion und Mountain Lion veröffentlicht; Viele von ihnen funktionieren auch gut für Mavericks (Mac OS X 10.9).
Laden Sie diese herunter und sehen Sie, welche Anpassungen Ihnen zur Verfügung stehen.
Vielleicht könnte eine ziemlich lange Erklärung, wie die Dinge funktionieren, Ihre und die Suche anderer nach diesen "versteckten" Vorlieben aufklären.
Die meisten Anwendungen lesen ihre Einstellungsdateien einmal, wenn sie gestartet werden, und das defaults
Tool ist vorhanden, um sicherzustellen, dass die Einstellungsdateien eine gültige Struktur haben und keine Syntaxfehler enthalten. (Es ermöglicht dem System auch zu ändern, wie die Schlüssel gespeichert werden, und die Benutzer müssen die Implementierungsdetails nicht kennen und können den Standardbefehl verwenden , um das gesamte Lesen und Schreiben zu erledigen.)
Stil- und Grammatikleitfäden für die englische Sprache stellen sicher, dass die Wörter, die ich hier schreibe, für den durchschnittlichen englischen Sprecher aussagekräftig sind, und die Standardisierung des Standardsystems setzt einen Rahmen, damit jeder weiß, was ihn erwartet. Die Formatierung der Präferenzliste ist viel starrer und mathematischer als eine menschliche Sprache, aber die Konzepte sind ähnlich.
Das Benutzerstandardsystem von Mac OS X ist ein Schlüsselwertspeicher (oder eine Datenbank, wenn Sie dies vorziehen).
Sie können alles in diese Key-Value-Speicher für Präferenzen schreiben, ein Shakespeare-Sonett, Zahlen, eine Einkaufsliste. Wenn das Programm so codiert ist, dass es nach einem bestimmten Schlüssel sucht, liest es den gespeicherten Wert. Wenn es nicht nach diesem Schlüssel sucht, liegt sein Wert dort ungenutzt und ungelesen.
Dies führt dazu, wie Sie wissen, nach welchen Werten ein bestimmtes Programm beim Start suchen könnte. Es läuft darauf hinaus, dass Sie entweder den Wert kennen oder das Programm zurückentwickeln müssen.
Es gibt viele Tools, um in ein Programm zu schauen und herauszufinden, welche Strings (die Schlüssel) eingebettet sind, wie z. B. strings
und dbx/lldb, sowie das Verlinken in Ihre eigene Bibliothek, um die interne Struktur eines bestimmten Programms auszugeben.
In der Praxis werden einige Dinge, die zum Testen benötigt werden, auf diese „versteckte“ Weise hinzugefügt, sodass Sie nicht über das Einstellungsfenster des Programms blicken und diese neuen Funktionen sehen können, die nicht für eine breite Verwendung bereit sind. In gewisser Weise ist es überhaupt nicht einfach, eine umfassende Liste zu erhalten, es sei denn, der Autor dieses Programms veröffentlicht den Quellcode oder dokumentiert diese Einstellungen anderweitig öffentlich.
Wenn Sie den Standardspeicher für eine bestimmte App lesen, lesen Sie nur das „Buch“, das geschrieben wurde, als die App ihren Standardsatz oder die mit Mac OS X gelieferten Einstellungen erstellte. Aus diesem Grund erhalten Sie keine vollständigen Informationen Liste der Dinge, die mit dieser Anwendung realistischerweise geändert werden können.
Soweit ich weiß, speichert eine Anwendung nur dann einen neuen Schlüssel, wenn sie von ihren Standardeinstellungen abweicht, zumindest tun das meine Apps.
Dies kann nicht einfach kontrolliert werden, da es Teil des User Defaults
Frameworks ist, da die App den Benutzereinstellungen nur mitteilt, was gespeichert werden muss, und sich um den Rest kümmert.
Ich glaube leider nicht, dass die Informationen, nach denen Sie suchen, leicht zu beschaffen sein werden. Es könnte jedoch schön sein, darauf zugreifen zu können.
Fahrrad
ehrfürchtig
Fahrrad
Lri
defaults read
, um die Schlüssel für normale Einstellungen zu finden, oder dieCFPreferencesCopyValue
Methode in gdb verwenden. Siehe So erkunden Sie weitere Standardeinstellungen, um Anpassungen unter OS X zu schreiben? - Superuser .Lri
defaults read
unterscheiden, um die Schlüssel für normale Einstellungen zu finden, Zeichenfolgen in den Binärdateien von Frameworks ausführen oder dieCFPreferencesCopyValue
Methode in gdb verwenden. Siehe So erkunden Sie weitere Standardeinstellungen, um Anpassungen unter OS X zu schreiben? - Superuser .