Wie kann ich alle Tastaturkürzel von einem Mac auf einen anderen migrieren?

11

Ich habe viele benutzerdefinierte Tastaturkürzel und werde Migrations-Macs sein. Ich habe den Migrationsassistenten getestet und er 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 einiger dieser Ordner über die Verknüpfungen scheinen sie nicht zu folgen.

Wie kann ich alle Tastaturkürzel auf einen neuen Mac migrieren lassen?

Screenshot-with-shadow.png

cwd
quelle

Antworten:

13

Die Verknüpfungen, die auf der 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 benutze tatsächlich ein Shell-Skript wie dieses, 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üpunkt zuweisen \1. Wenn Sie einen Menüpunkt zuweisen nil, wird dieser ausgelöst, wenn Sie in einigen Anwendungen wie Audacity 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 Einstellungen in Mavericks zwischengespeichert werden. Mit Standardeinstellungen vorgenommene Änderungen werden auch nach dem Beenden und erneuten Öffnen einer Anwendung übernommen. Wenn Sie jedoch eine Liste direkt bearbeiten oder ersetzen, müssen Sie auch killall cfprefsdoder ausführen defaults read /path/to/plist.

Lri
quelle
9

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

#!/bin/sh
# save-hotkeys.sh

DESTFILE=~/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 sie durch Ausführen aus sh save-hotkeys.sh. Führen Sie auf dem Remotecomputer die Ausführung ./install-hotkeys.shim selben Verzeichnis wie die Datei aus. In meinem Beispiel speichere ich die Datei in Dropbox, damit sie mit meinen anderen Computern synchronisiert wird.

Alan Shutko
quelle
Hallo Alan, das ist großartig. Wie führe ich dieses Skript aus? In einer Datei speichern? Welche Erweiterung sollte es sein? Führen Sie es durch Doppelklick auf die Datei aus?
wütend Kiwi
Es wurde eine Erklärung zur Verwendung hinzugefügt.
Alan Shutko
@ Alan Shutko, ich habe diesen Fehler beim Ausführen von Save-Hotkeys erhalten: Af-MacBook-Pro: HD 2 af $ sh save-hotkeys.sh save-hotkeys.sh: Zeile 5: / Users / Af / Dropbox / install -hotkeys.sh: Keine solche Datei oder Verzeichnis
wütend Kiwi
Hallo Alan, irgendein Update?
wütende Kiwi
1
Funktioniert nicht für mich am 10.15.2 Catalina, nachdem die Datei ausgeführt wurde, meldet es: Unexpected argument NSUserKeyEquivalents; leaving defaults unchanged.
Siniša Šašić