有没有办法在 OS X 中使用 shell 更改键盘快捷键

Is there a way to change keyboard shortcuts with shell in OS X

我已经编写了一些默认脚本来获得一些标准设置,我可以移植到其他系统或在计算机崩溃的情况下重新安装。

在 OS X 上是否有默认域或其他方式以编程方式 add/delete 键盘快捷键?

编辑:

好的,我知道有 com.apple.symbolichotkeys,但我该如何写入呢? 我知道我必须使用 -string 将字符串写入选项,如下所示:

defaults write com.yourdomain.appname variable -string value

但这好像是一个数组,里面有好几个值,其中一个也是数组。 当然,我可以只复制该内容并写入默认文件本身,但我想以 shell 命令的形式进行。

另外:

这真的可以便携吗?由于看不懂com.apple.symbolichotkeys的内容,还不如不便携

由于 com.apple.symbolichotkeys 的结构没有记录并且充满了神秘的数字,你最好的办法是使用系统偏好设置 > 键盘 > 快捷键来配置你的热键,然后将你的配置导出为 XML:

defaults export com.apple.symbolichotkeys symbolichotkeys.plist

symbolichotkeys.plist 添加到您的设置脚本集合中。要加载它:

defaults import com.apple.symbolichotkeys symbolichotkeys.plist

要写入 com.apple.symbolichotkeys 默认值,您可以从终端使用这样的命令:

defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys 
-dict-add 73 "{enabled =1; value = { parameters = (65535, 53, 1048576);
 type = 'standard';}; }"

你也可以在Objective-C中使用NSUserDefaults(我觉得也是Swift)

还有 C 等价物:

CFPreferencesSetAppValue( KEY, VALUE, CFSTR("com.apple.symbolichotkeys") );
CFPreferencesAppSynchronize( CFSTR("com.apple.symbolichotkeys") );