На самом деле есть Plist для этого, информация хранится в com.apple.symbolichotkeys AppleSymbolicHotKeys
, который представляет собой сложный вложенный код и перечисляет как:
$ defaults read com.apple.symbolichotkeys AppleSymbolicHotKeys
{
10 = {
enabled = 1;
value = {
parameters = (
65535,
96,
8650752
);
type = standard;
};
};
11 = {
enabled = 1;
value = {
parameters = (
65535,
97,
8650752
);
type = standard;
};
};
[...]
}
Допустим, вы хотите программно изменить ярлык "Показать меню справки" в Системных настройках -> Клавиатура -> вкладка Ярлыки -> Ярлык приложения -> Все приложения. Чтобы найти правильную запись, распечатайте весь Plist в текстовом файле, измените ярлык в Системных настройках, снова напечатайте Plist во втором файле и введите их в другом формате:
$ defaults read com.apple.symbolichotkeys AppleSymbolicHotKeys > 1
$ # modify System Preferences
$ defaults read com.apple.symbolichotkeys AppleSymbolicHotKeys > 2
$ diff -U 5 1 2
--- 1 2019-05-27 23:37:58.000000000 -0300
+++ 2 2019-05-27 23:38:24.000000000 -0300
@@ -5063,13 +5063,13 @@
};
98 = {
enabled = 1;
value = {
parameters = (
- 32,
- 49,
- 524288
+ 105,
+ 34,
+ 655360
);
type = standard;
};
};
};
Таким образом, изменяемая запись - 98
, поскольку это сложная структура, для этого вам нужно будет использовать /usr/libexec/PlistBuddy
:
# Set "alt + Space" as shortcut for "Help menu"
/usr/libexec/PlistBuddy -c "Delete :AppleSymbolicHotKeys:98:value:parameters" ~/Library/Preferences/com.apple.symbolichotkeys.plist
/usr/libexec/PlistBuddy -c "Add :AppleSymbolicHotKeys:98:value:parameters array" ~/Library/Preferences/com.apple.symbolichotkeys.plist
/usr/libexec/PlistBuddy -c "Add :AppleSymbolicHotKeys:98:value:parameters: integer 32" ~/Library/Preferences/com.apple.symbolichotkeys.plist
/usr/libexec/PlistBuddy -c "Add :AppleSymbolicHotKeys:98:value:parameters: integer 49" ~/Library/Preferences/com.apple.symbolichotkeys.plist
/usr/libexec/PlistBuddy -c "Add :AppleSymbolicHotKeys:98:value:parameters: integer 524288" ~/Library/Preferences/com.apple.symbolichotkeys.plist
/usr/libexec/PlistBuddy -c "Delete :AppleSymbolicHotKeys:98:enabled" ~/Library/Preferences/com.apple.symbolichotkeys.plist
/usr/libexec/PlistBuddy -c "Add :AppleSymbolicHotKeys:98:enabled bool true" ~/Library/Preferences/com.apple.symbolichotkeys.plist
Примечание
- Мне пришлось удалить параметр
bool
, чтобы изменить его
- Необходимо перезагрузить компьютер, чтобы изменения вступили в силу