有没有办法在 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") );
我已经编写了一些默认脚本来获得一些标准设置,我可以移植到其他系统或在计算机崩溃的情况下重新安装。
在 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") );