Wie kann ich alle Tastenkombinationen von einem Mac auf einen anderen migrieren?

2814
cwd

Ich habe viele benutzerdefinierte Tastenkombinationen und werde Macs für die Migration sein. Ich habe den Migrationsassistenten getestet und es schien diese nicht zu bekommen.

Ich habe irgendwo gelesen, dass sie in den plist-Dateien der einzelnen Anwendung im ~/Library/Application SupportOrdner gespeichert sind, aber selbst nach dem Kopieren scheinen einige dieser Ordner über die Verknüpfungen nicht zu folgen.

Wie kann ich alle Tastenkombinationen auf einen neuen Mac migrieren lassen?

screenshot-with-shadow.png

7

2 Antworten auf die Frage

8
user495470

Die Verknüpfungen, die über die Registerkarte Anwendungsverknüpfungen geändert werden können, werden in ~/Library/Preferences/.GlobalPreferences.plistund in den Eigenschaftslisten der Anwendungen in ~/Library/Preferences/*.plistund gespeichert ~/Library/Containers/*/Data/Library/Preferences/*.plist.

$ defaults find NSUserKeyEquivalents Found 1 keys in domain 'Apple Global Domain': { NSUserKeyEquivalents = { "Actual Size" = "@0"; "Automatic Fit" = "@9"; "Automatically Resize" = "@9"; "Browse All Versions..." = "^@v"; "Decrease Indent Level" = "^\\Uf702"; "Decrease Level" = "^\\Uf702"; "Decrease Paragraph Indent" = "^\\Uf702"; "Enter Full Screen" = "^@f"; "Enter Full Screen Mode" = "^@f"; "Exit Full Screen" = "^@f"; "Exit Full Screen Mode" = "^@f"; "Find Next" = "@g"; "Find Previous" = "$@g"; "Find and Replace..." = "~@f"; "Full Screen" = "^@f"; Fullscreen = "^@f"; "Increase Indent Level" = "^\\Uf703"; "Increase Level" = "^\\Uf703"; "Increase Paragraph Indent" = "^\\Uf703"; "Line Spacing..." = "~@l"; Minimize = "\001"; "Minimize All" = "\001"; "Move Line Down" = "^\\Uf701"; "Move Line Up" = "^\\Uf700"; "Next Tab" = "~@\\Uf703"; "Next Workspace" = "~@\\Uf703"; "Normal Screen" = "^@f"; "Original Size" = "@0"; "Previous Tab" = "~@\\Uf702"; "Previous Workspace" = "~@\\Uf702"; "Remove Full Screen" = "^@f"; Reveal = "$@r"; "Select Next Tab" = "~@\\Uf703"; "Select Next Tab View" = "~@\\Uf703"; "Select Previous Tab" = "~@\\Uf702"; "Select Previous Tab View" = "~@\\Uf702"; "Shift Down" = "^\\Uf701"; "Shift Left" = "^\\Uf702"; "Shift Right" = "^\\Uf703"; "Shift Up" = "^\\Uf700"; "Show Next Tab" = "~@\\Uf703"; "Show Previous Tab" = "~@\\Uf702"; "Show in Finder" = "$@r"; "Toggle Full Screen" = "^@f"; "Use Selection for Find" = "@e"; "Zoom Reset" = "@0"; "Zoom to Fit" = "@9"; }; } Found 1 keys in domain 'com.panic.Transmit': { NSUserKeyEquivalents = { "Hide Invisible Files" = "$@."; Refresh = "@r"; "Show Invisible Files" = "$@."; "Synchronize..." = "$@y"; }; } Found 1 keys in domain 'net.sourceforge.skim-app.skim': { NSUserKeyEquivalents = { Crop = "@k"; "Single Page" = "$@1"; "Single Page Continuous" = "$@0"; "Two Pages" = "$@2"; }; } Found 1 keys in domain 'com.googlecode.iterm2': { NSUserKeyEquivalents = { "Next Pane" = "@\\Uf703"; "Open Autocomplete..." = "@;"; "Previous Pane" = "@\\Uf702"; "Select Pane Above" = "@\\Uf700"; "Select Pane Below" = "@\\Uf701"; }; } Found 1 keys in domain 'net.notational.velocity': { NSUserKeyEquivalents = { Bold = "\001"; Delete = "$@d"; Italic = "\001"; "Plain Text Style" = "\001"; Strikethrough = "\001"; }; } Found 1 keys in domain 'com.apple.Safari': { NSUserKeyEquivalents = { "Mail Contents of This Page" = "\001"; "Reopen All Windows from Last Session" = "~$@r"; "Reopen Last Closed Window" = "~@r"; }; } Found 1 keys in domain 'com.hogbaysoftware.WriteRoom.mac': { NSUserKeyEquivalents = { "Column 120" = "$@7"; "Column 200" = "$@8"; "Column 40" = "$@1"; "Column 50" = "$@2"; "Column 60" = "$@3"; "Column 66" = "$@4"; "Column 80" = "$@5"; "Column 90" = "$@6"; "Column Window Width" = "$@0"; "Enter Full Screen" = "$@f"; "Enter Full Screen Single" = "^@f"; "Exit Full Screen" = "$@f"; "Exit Full Screen Single" = "^@f"; }; } 

Ich verwende ein Shell-Skript wie folgt, um die Verknüpfungen zu konfigurieren:

defaults write -g NSUserKeyEquivalents '{ "Browse All Versions..." = "^@v"; "Minimize" = "\1"; "Minimize All" = "\1"; "Show Previous Tab" = "~@\Uf702"; "Show Next Tab" = "~@\Uf703"; }'  defaults write -app Safari NSUserKeyEquivalents '{ "Reopen Last Closed Window" = "~@r"; "Reopen All Windows from Last Session" = "~$@r"; "Mail Contents of This Page" = "\1"; }' 

Die Verknüpfungszeichenfolgen verwenden dasselbe Format wie in DefaultKeyBinding.dict . Sie können eine Verknüpfung entfernen, indem Sie einen Menüeintrag zuweisen \1. Wenn Sie ein Menüelement zuweisen nil, wird es ausgelöst, wenn Sie in einigen Anwendungen wie Audacity die Taste n drücken. Wenn Sie ein Menüelement zuweisen \0, wird es ausgelöst, wenn Sie in Safari in 10.9 eine beliebige Taste drücken.

Beachten Sie, dass die Einstellungen in Mavericks zwischengespeichert werden. Änderungen, die mit den Standardeinstellungen vorgenommen wurden, werden auch nach dem Beenden und erneuten Öffnen einer Anwendung übernommen. Wenn Sie jedoch eine Pliste direkt bearbeiten oder ersetzen, müssen Sie auch killall cfprefsdoder ausführen defaults read /path/to/plist.

5
Alan Shutko

Dank der vorhandenen Antwort habe ich ein Skript erstellt, das die Verknüpfungen in einem Skript speichert, das auf anderen Computern ausgeführt werden kann.

#!/bin/sh # save-hotkeys.sh  DESTFILE=~/Dropbox/install-hotkeys.sh echo '#!/bin/bash' > $DESTFILE  defaults find NSUserKeyEquivalents | sed -e "s/Found [0-9]* keys in domain '\\([^']*\\)':/defaults write \\1 NSUserKeyEquivalents '/" -e "s/ NSUserKeyEquivalents = {//" -e "s/};//" -e "s/}/}'/" >> $DESTFILE echo killall cfprefsd >> $DESTFILE chmod a+x $DESTFILE 

Speichern Sie dies in einer aufgerufenen Datei save-hotkeys.shund führen Sie es durch Ausführen aus sh save-hotkeys.sh. Führen Sie auf dem Remote-Computer die Ausführung aus, ./install-hotkeys.shwenn Sie sich im selben Verzeichnis wie die Datei befinden. In meinem Beispiel speichere ich die Datei in der Dropbox, damit sie mit meinen anderen Computern synchronisiert wird.

Hallo Alan, das ist großartig. Wie führe ich das Skript aus? Speichern Sie es in einer Datei? Welche Erweiterung sollte es sein? Führen Sie es aus, indem Sie auf die Datei doppelklicken. angry kiwi vor 9 Jahren 0
Einige Erklärungen zur Verwendung hinzugefügt. Alan Shutko vor 9 Jahren 0
@ Alan Shutko, ich habe diese Fehlermeldung erhalten, wenn ich save-hotkeys ausführte: Af-MacBook-Pro: HD 2 von $ sh save-hotkeys.sh save-hotkeys.sh: Zeile 5: / Benutzer / Af / Dropbox / install -hotkeys.sh: Keine solche Datei oder Verzeichnis angry kiwi vor 9 Jahren 0
Hallo Alan, irgendein Update? angry kiwi vor 9 Jahren 0
@runrunforest: Ihr Shell-Skript ist fehlgeschlagen, weil das Verzeichnis `~ / Dropbox` nicht erstellt wurde. daniel Azuelos vor 7 Jahren 0
macOS 10.12 Sierra: Die Taste "NSUserKeyEquivalents" enthält die Einstellungen unter "Systemeinstellungen> Tastatur> Tastenkombinationen> App-Tastenkombinationen". Wie füge ich die Einstellungen unter Systemeinstellungen> Tastatur> Tastenkombinationen> Dienste hinzu? Diese befinden sich nicht mehr in der Domain `.GlobalPreferences.plist` oder` Apple Global Domain`. ** In welcher Domäne und Schlüssel werden sie jetzt gespeichert? ** porg vor 7 Jahren 0
Hintergrundinfo: Ab macOS 10.12.1 Sierra besteht das Problem, dass die Schlüsselbindungen für Services gelegentlich ohne Betriebssystem- oder Service-Upgrades verloren gehen! Ich vermute, der Verlust der Tastenkombinationen geschieht während eines Systemstarts oder vielleicht sogar häufiger während einer Sitzung. Daher beabsichtigte ich, das Skript als Backup / Restore-Tool zur Rettung zu verwenden, gegebenenfalls als Startskript, da ich es immer wieder von Hand hasse. Leider sind die ** Services-Schlüsselbindungen ** nicht enthalten, und diese gehen verloren. Die ** App Shortcuts ** hatten bisher keine Probleme. porg vor 7 Jahren 0
Verlauf: Dieses Skript hat gut funktioniert, als ich ein neues OS X 10.9 für die Migration meiner 10.6.8-Einstellungen eingerichtet habe. Ich habe kürzlich ein Upgrade von 10.9 auf 10.12 durchgeführt. Seit Steve Jobs Apple in der Qualitätskontrolle scheiße, scheine ich nur jedes 2. oder 3. größere Betriebssystem-Update zu aktualisieren, da diese zu viele Fehler in den Nebenversionen x.1. * Und sogar x.2. * Und vielen Pro-Benutzerfunktionen enthalten oder Anpassungspausen während des Upgrades, da diese Ausgabe also Beweise liefert, was mich zu viel Produktivität kostet, daher überspringe ich 1-2 Betriebssystemupgrades. porg vor 7 Jahren 0
`~ / Library / Preferences / pbs.plist` ist der Speicherort für die Diensteinstellungen in macOS 10.12 Sierra. Er enthält die Namen und Sichtbarkeit der Dienste im Hauptmenü und Kontextmenüs sowie die Tastenzuordnungen des Benutzers. Die Manpage für "pbs" sagt, dass "pbs" ein Agent für das Menü "Services" ist. Es sucht nach verfügbaren Diensten und verkauft diese, um das Dienste-Menü aufzufüllen. Diese Plist enthält eine "key_equivalent" -Variable für jeden Dienst mit einer benutzerdefinierten Schlüsselbindung. Wie fügen wir dies Ihrem Backup / Restore-Skript richtig hinzu? porg vor 7 Jahren 0
Das ist verdammt fantastisch! Kudos! Ze'ev vor 6 Jahren 0