我想要这些键绑定:
- Cmd+ PageUp= 音量调高
- Cmd+ PageDown= 音量减小
我跟着这些说明:
创建 AppleScript 脚本工作正常,但无法设置Cmd+PageUp快捷方式系统偏好设置→键盘→快捷方式→服务。
是否可以从~Library/KeyBindings/DefaultKeyBindings.dict?
答案1
这是非常可行的。关键是使用 Automator 从 AppleScript 创建服务。
- 启动 Automator,选择文件、新建,然后选择服务。
- 设置接收服务“无输入”从“任何应用程序”。
- 从操作中选择运行 AppleScript并将其拖到右侧的工作区。
- 将脚本复制/粘贴到编辑器中
- 使用适当的名称保存该服务。
- 启动系统偏好设置,键盘和您使用的服务名称将可用。
- 根据需要设置快捷方式。
唯一的其他方法可能是使用 Automator 创建一个运行 bash 脚本的服务,该脚本将调用ossascript your_script
。我不确定您将如何调用该.dict
文件来完成您想要完成的任务。
答案2
服务(或未作为服务运行的 AppleScript 脚本)运行前通常会有明显的延迟,并且服务的键盘快捷键在没有服务菜单的应用程序中不可用。更好的选择是使用私有文件就像这样使用 Karabiner:
<?xml version="1.0"?>
<root>
<item>
<name>custom</name>
<identifier>custom</identifier>
<autogen>__KeyToKey__ KeyCode::PAGEUP, VK_COMMAND, ModifierFlag::NONE, KeyCode::VK_CONSUMERKEY_VOLUME_UP</autogen>
<autogen>__KeyToKey__ KeyCode::PAGEDOWN, VK_COMMAND, ModifierFlag::NONE, KeyCode::VK_CONSUMERKEY_VOLUME_DOWN</autogen>
</item>
</root>
, ModifierFlag::NONE
例如,如果没有第一个autogen
条目,则会将 option + command + page up 更改为 option + volume up。
要以四分之一小节的增量改变音量,请, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L
在之前添加</autogen>
。
这会将右选项键在按住时映射到额外的修饰键,在按下时映射到 F19,例如,按住额外的修饰键的同时按下键盘 0 键会增加音量:
<?xml version="1.0"?>
<root>
<item>
<name>custom</name>
<identifier>custom</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::OPTION_R, KeyCode::VK_MODIFIER_EXTRA1, KeyCode::F19</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_1, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_BRIGHTNESS_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_2, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_BRIGHTNESS_UP</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_6, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_MUSIC_PREV</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_7, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_MUSIC_PLAY</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_8, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_MUSIC_NEXT</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_9, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_VOLUME_DOWN, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_0, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_VOLUME_UP, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L</autogen>
</item>
</root>