Ярлыки, которые можно изменить на вкладке Ярлыки приложений, хранятся в ~/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. Изменения, сделанные с настройками по умолчанию, по-прежнему применяются после того, как вы просто закроете и снова откроете приложение. Но если вы редактируете plist напрямую или заменяете plist, вы также должны запустить killall cfprefsd
или по defaults read /path/to/plist
.