回答:
アプリケーションのショートカット]タブから変更することができるショートカットが中に保存されている~/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
Audacityなどの一部のアプリケーションでnを押すとトリガーされます。にメニュー項目を割り当てると、\0
10.9のSafariで任意のキーを押すとトリガーされます。
設定はMavericksにキャッシュされることに注意してください。デフォルトで行った変更は、アプリケーションを終了して再度開いた後も適用されます。ただし、plistを直接編集するか、plistを置き換える場合は、またはも実行するkillall cfprefsd
必要がありdefaults read /path/to/plist
ます。
既存の回答のおかげで、他のマシンで実行できるようにスクリプトにショートカットを保存するスクリプトを作成しました。
#!/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
、ファイルと同じディレクトリで実行します。私の例では、ファイルをDropboxに保存して、他のマシンと同期されるようにします。
Unexpected argument NSUserKeyEquivalents; leaving defaults unchanged.