首先,您需要一个名为Karabiner的第三方键盘重映射应用程序(以前称为KeyRemap4MacBook)。该应用程序有点用户不友好,但是从理论上讲,您只需要这样做一次。另外,它目前在MacOS Sierra上不起作用...因此请记住这一点。
开始了...
安装Karabiner
https://pqrs.org/osx/karabiner/index.html.en
奔跑卡拉宾纳
如果需要所有功能,则应为其授予一些可访问性权限。
使用帮助器应用程序“ EventViewer”获取键码
打开EventViewer以获取键码/应用程序/设备ID:
转到“主要”选项卡,然后按要重新映射的键盘,蓝牙遥控器等上的键。在这种情况下,您可以在我的Satechi蓝牙遥控器上看到Media-Forward和Media-Back的键码(我想将其重新映射到左/右箭头键)。
继续并“复制到粘贴板”并将其粘贴到文本文档中以备后用。现在,根据您的用例,您可以转到“应用程序”或“设备”选项卡。
如果要将密钥重新映射限制为特定的应用程序,则需要创建一个针对特定应用程序ID(例如google chrome)的映射规则。因此,您将转到“应用程序”标签,并获取您感兴趣的应用程序的应用程序ID(稍后在我们创建规则时使用)。
以我为例,我只想在我的Satechi蓝牙遥控器上重新映射这些键,并且不想弄乱现有键盘键的工作方式...所以我想制定特定于设备的规则。因此,我转到“设备”标签。
注意!!!对于应用程序和设备,您还应该复制并粘贴到文本文件中,以便拥有完整的设备/应用程序ID字符串供我们的规则使用。
建立规则
现在您已经复制了键码,应用程序和/或设备ID并将其粘贴到文本文件中以供以后参考,您可以关闭EventViewer并返回到主应用程序。
默认规则对我们来说不是很有趣,因此我们需要创建一个自定义规则,但需要进行编辑 private.xml
这将仅启动一个显示private.xml的查找器窗口。继续并在您喜欢的文本编辑器中打开private.xml。
现在您准备建立规则了...
有关此文件格式的文档位于:https :
//pqrs.org/osx/karabiner/xml.html.en
对于每个,<item>
您都需要最低 <name>
<identifier>
和<autogen>
。名称只是您的名字。标识符也由您组成,但应该唯一。autogen是您指定规则/映射的位置(即,感兴趣的键应将键发送给foo bar)。
您还可以指定仅对特定的活动应用程序运行规则(我认为这是MacOS可访问性权限发挥作用的地方,因此Karabiner可以确定活动窗口)。这是用<only>
。
(对我而言)也很有趣,<device_only>
它使我可以为特定键盘(即我的satechi蓝牙遥控器)制定规则。有关更多详细信息,请参见上面的链接。
无论如何。使用从EventViewer获得的键码ID,设备ID和应用程序ID来构造自定义规则。
我的看起来像这样:
<?xml version="1.0"?>
<root>
<item>
<name>Satechi Right</name>
<identifier>private.satechi.right</identifier>
<device_only>DeviceVendor::RawValue::0x05ac,DeviceProduct::RawValue::0x023c</device_only>
<autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_NEXT_17, KeyCode::CURSOR_RIGHT</autogen>
</item>
<item>
<name>Satechi Left</name>
<identifier>private.satechi.left</identifier>
<device_only>DeviceVendor::RawValue::0x05ac,DeviceProduct::RawValue::0x023c</device_only>
<autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_PREV_18, KeyCode::CURSOR_LEFT</autogen>
</item>
</root>
摘要:2条规则。仅限Satechi蓝牙远程设备。“下一个”媒体按钮映射到右箭头,“上一个”媒体按钮映射到左箭头。适用于所有应用程序。
加载规则
保存您的XML文件。返回Karabiner应用程序。转到“更改密钥”选项卡。点击左上方的“重新加载XML”。您的新规则现在应该显示出来。选中复选框以启用规则。测试您的新键映射是否按预期工作。
该应用程序绝对不是用户友好的,但是一旦我理解了这些选项,我就能很轻松地准确设置我想要的东西。Karabiner有点漏洞...即使重新映射规则仍在起作用,事件查看器中仍然出现一些事件停止...重新启动帮助。