You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无需Karabiner-Elements,仅为外接Windows风格键盘单独映射右Ctrl为右Option的方法求助

无需Karabiner-Elements,仅为外接Windows风格键盘单独映射右Ctrl为右Option的方法求助

嘿,我完全懂你的困扰!之前靠Karabiner搞定的键盘映射突然罢工,自带系统设置又没法单独改右Ctrl,确实头疼。给你两个不用Karabiner的可行方案,亲测有效:


方案一:用系统自带的hidutil命令(零成本,无需第三方工具)

这个方法能精准针对你的外接键盘单独设置,不会影响内置键盘或者其他设备:

  1. 先找到外接键盘的硬件ID
    打开终端,输入这条命令:
ioreg -p IOUSB -c IOUSBDevice -k idVendor -k idProduct -r | grep -E "(idVendor|idProduct|USB Serial Number|Product)"

在输出里找到你的外接Windows键盘(看Product名称),记下对应的idVendoridProduct的十六进制数值(比如0x12340x5678)。

  1. 执行映射命令
    把下面命令里的0xXXXX0xYYYY替换成你刚才拿到的VendorID和ProductID,然后在终端运行:
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000e4,"HIDKeyboardModifierMappingDst":0x7000000e6,"VendorID":0xXXXX,"ProductID":0xYYYY}]}'
  • 这里0x7000000e4是右Ctrl的HID标准代码,0x7000000e6是右Option的代码,不用改。
    运行完立刻就能测试,外接键盘的右Ctrl应该已经变成右Option了,内置键盘完全不受影响。
  1. 设置开机自动生效
    上面的命令重启后会失效,所以可以创建一个开机启动项:
  • 打开文本编辑器,粘贴下面的XML内容(记得替换VendorID和ProductID):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.user.keyboardremap</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--set</string>
        <string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000e4,"HIDKeyboardModifierMappingDst":0x7000000e6,"VendorID":0xXXXX,"ProductID":0xYYYY}]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
  • 把文件保存到~/Library/LaunchAgents目录下,命名为com.user.keyboardremap.plist
  • 回到终端,输入launchctl load ~/Library/LaunchAgents/com.user.keyboardremap.plist,这样每次开机都会自动加载这个映射了。

方案二:用免费工具Keyboard Maestro(更直观,适合怕命令行的朋友)

如果你觉得命令行太麻烦,Keyboard Maestro是个不错的免费工具(基础功能够用),能可视化设置设备专属映射:

  • 下载安装后打开,点击左上角的“+”新建一个宏
  • 触发条件选“按键按下”,然后点击“设备”选项,选择你的外接Windows键盘,再选择“右Ctrl”键
  • 动作列表里选“发送按键”,选择“右Option”键
  • 保存宏就搞定了,只有外接键盘的右Ctrl会被映射,其他键盘完全不受影响。

备注:内容来源于stack exchange,提问作者Dmitry

火山引擎 最新活动