Ich habe lange versucht, das herauszufinden. Ich habe ein ziemlich typisches Mac OS-Bereitstellungsskript:
https://gist.github.com/ryanpcmcquen/b2e608311f286a4ab3e1
Ich möchte die Verknüpfungen für die Missionssteuerung so ändern, dass sie alle Ctrl+ Alt+ ...anstelle von Ctrl+ sind .... Die Standardeinstellung ist beispielsweise: Ctrl+ Up, um die Missionskontrolle zu aktivieren. Ich möchte dies in Ctrl+ Alt+ ändern Up, da die aktuelle Verknüpfung mit anderen von mir verwendeten Programmen in Konflikt steht.
Beachten Sie, dass ich bereits weiß, wie dies zu tun System Preferences > Keyboard > Shortcuts
ist. Ich suche nach einer skriptfähigen Befehlszeilenlösung.
BEARBEITEN: Dank @ user3439894 habe ich ein Skript erstellt, um alle Plist-Schlüssel so zu ändern, wie ich sie haben möchte. Das einzige Problem ist, dass es nicht funktioniert. :-(
Folgendes habe ich bisher:
#!/bin/bash
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 32 "{enabled = 1; value = { parameters = (65535, 126, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 33 "{enabled = 1; value = { parameters = (65535, 125, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 34 "{enabled = 1; value = { parameters = (65535, 126, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 35 "{enabled = 1; value = { parameters = (65535, 125, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 79 "{enabled = 1; value = { parameters = (65535, 123, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 80 "{enabled = 1; value = { parameters = (65535, 123, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 81 "{enabled = 1; value = { parameters = (65535, 124, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 82 "{enabled = 1; value = { parameters = (65535, 124, 3014656); type = standard; }; }"
chown -Rf `whoami` ~/Library/Preferences/com.apple.symbolichotkeys.plist;
defaults read com.apple.symbolichotkeys
quelle
type = standard;
sollte eigentlichtype = 'standard';
die Anführungszeichen sein'standard'
. Das heißt, manchmal wird die Änderung selbst bei einer ordnungsgemäß geformten Befehlszeile nicht wirksam, selbst wenn; killall -u $USER cfprefsd
sie am Ende desdefaults
Befehls hinzugefügt wird . Auch der vollständige Pfad zur.plist
Datei ist in diesem Anwendungsfall nicht erforderlich und einfach zBdefaults write com.apple.symbolichotkeys AppleSymbolicHotKeys ...
und der Rest des Befehls ist alles, was erforderlich ist.Antworten:
Dies ist keine direkte Antwort, obwohl ich hoffe, dass die hier präsentierten Informationen Ihnen helfen, eine direkte Antwort zu erhalten.
Ich kann Ihnen sagen, was sich in welcher Datei ändert, wenn Sie die Standardtastenkürzel für Mission Control von Control-Up-Pfeil in Control-Option-Up-Pfeil ändern. Dies ist die "Item 2 Number" des Arrays "parameters" im "value" Dictionary des "32" Dictionary und des "34" Dictionary des "AppleSymbolicHotKeys" Dictionary in der
/Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plist
Datei.Hier ist eine
defaults read
Darstellung dercom.apple.symbolichotkeys.plist
Dateistruktur in Bezug auf die Änderungen, die unter den oben definierten Umständen vorgenommen wurden.Missionskontrolle mit der Standardeinstellung Kontrollpfeil
Mission Control wurde in Control-Option-Up Arrow geändert
Im Abschnitt BUGS der
defaults
Manpage heißt es:Dies ist ein perfektes Beispiel, da es sich um eine sehr komplexe Befehlszeile handelt,
defaults
in der die Zielwerte in die Zielarrayelemente geschrieben werden, sofern dies überhaupt möglich ist. Nur zu Ihrer Information ... Wenn Sie versuchen, einendefaults write com.apple.symbolichotkeys ...
Befehl auszuführen, stellen Sie sicher, dass Sie zuerst die Zieldatei gesichert haben.Die andere Möglichkeit besteht darin, ein AppleScript zu verwenden, um die Einstellungen durch Navigieren in der GUI der Systemeinstellungen zu ändern. Auch dies ist im Vergleich zum Festlegen eines Objekts der obersten Ebene, das hier nicht das Ziel ist, etwas komplex. Ich bin mir nicht einmal sicher, ob es machbar ist, aber wenn ich einen automatisierten Weg brauchte, würde ich es herausfinden, aber ich habe nicht die Zeit, eine der beiden Methoden herauszufinden, sorry.
Zumindest wissen Sie jetzt, was sich wo ändert, und von dort aus können Sie es entweder selbst herausfinden oder zusätzliche Hilfe erhalten, um dieses bisschen mehr zu wissen.
Hier ist ein abgeschnittenes Bild in Xcode der
com.apple.symbolichotkeys.plist
Datei.Übrigens habe ich die Änderungen mithilfe eines Dienstprogramms eines Drittanbieters abgefangen, das die Dateisystemänderungen protokollierte und diese Informationen dann in eine besser lesbare Ausgabe konvertierte, um diese Informationen bereitzustellen.
quelle
filemon
Teil der Extras aus dem Buch "Mac OS X Internals - To The Apple's Core" in Form von Quellcode,filemon.c
den ich zu einer ausführbaren Datei auf meinem System kompiliert habe. Ich habe dann die Unterschiede in der geänderten Datei ihres aktuellen Status mit der Datei aus einer Time Machine-Sicherung verglichen, die kurz vor den Änderungen erstellt wurde. Sie können auch den nativen Befehl fs_usage verwenden .Dies ist meine Empfehlung: Verwenden Sie ein Dienstprogramm wie Karabiner , um diese Anpassung zu begleiten.
Als Entwickler möchte ich sagen, dass ich persönlich finde, dass es ein faszinierendes und verlockendes Thema ist, und es zeigt wirklich die hässlichere, dunklere Seite von macOS, die sich hinter den Kulissen bewegt, die nur Softwareentwickler und Hacker wirklich schätzen können ...
Das Problem ist einfach genug: Ich möchte nur die Standardschlüsselkombination meiner eigenen Bindung zuordnen.
Warum um alles in der Welt ist es so schwierig / kompliziert? Ich beabsichtige, eine Lösung zu finden und zu veröffentlichen ... Bleiben Sie dran.
quelle