Як я можу перемістити всі комбінації клавіш з одного Mac на інший?


11

У мене є багато спеціальних комбінацій клавіш, і це будуть міграційні Macs. Я протестував міграційного помічника, і, схоже, цього не отримав.

Я десь прочитав, що вони зберігаються у файлах плістів окремих програм у ~/Library/Application Supportпапці, але навіть після копіювання декількох з цих папок через ярлики, схоже, це не випливає.

Як я можу перенести всі комбінації клавіш на новий Mac?

screenshot-with-shadow.png

Відповіді:


13

Клавіші швидкого доступу, які можна змінити на вкладці Ярлики програм, зберігаються у ~/Library/Preferences/.GlobalPreferences.plistсписках властивостей програм у ~/Library/Preferences/*.plistта в ~/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";
    };
}

Я фактично використовую такий сценарій оболонки, щоб налаштувати ярлики:

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";
}'

Рядки ярлика використовують той самий формат, що і в DefaultKeyBinding.dict . Ви можете видалити ярлик, призначивши пункт меню в \1. Якщо ви призначите пункт меню nil, він спрацьовує, якщо натиснути n у деяких програмах, таких як Audacity. Якщо ви призначите пункт меню \0, він спрацьовує при натисканні будь-якої клавіші в Safari в 10.9.

Зауважте, що налаштування кешовано в Mavericks. Зміни, внесені за замовчуванням, все ще застосовуються після того, як ви просто закрили програму та знову відкрили програму. Але якщо ви редагуєте пліст безпосередньо або замінюєте його, вам також доведеться запустити killall cfprefsdабо defaults read /path/to/plist.


9

Завдяки існуючій відповіді я створив сценарій, який дозволить зберегти ярлики в сценарій для запуску на інших машинах.

#!/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

Збережіть це у файлі під назвою save-hotkeys.shта виконайте його запуском sh save-hotkeys.sh. На віддаленій машині виконайте ./install-hotkeys.shв той же каталог, що і файл. У моєму прикладі я зберігаю файл у папці, що його синхронізує з іншими моїми машинами.


Привіт Алан, це чудово. Як запустити цей сценарій? Зберегти його у файл? Яке розширення має бути? Запустити його подвійним клацанням по файлу?
сердитий ківі

Додано пояснення, як його використовувати.
Алан Шутко

@ Alan Shutko, я отримав цю помилку під час виконання save-hotkeys: Af-MacBook-Pro: HD 2 af $ sh save-hotkeys.sh save-hotkeys.sh: рядок 5: / Users / Af / Dropbox / install -hotkeys.sh: Немає такого файлу чи каталогу
злий ківі

Привіт Алан, будь-яке оновлення?
сердитий ківі

1
Не працює для мене 10.15.2 Каталіна після виконання файлу повідомляє: Unexpected argument NSUserKeyEquivalents; leaving defaults unchanged.
Синіша Шашич
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.