如何使用 hidutil 将密钥重新映射分配给特定设备

NFB*_*NFB 9 macos

正如Apple 的这篇文章中所见,您可以从 OS Sierra 的命令行中使用以下内容重新映射密钥:

hidutil property --set '{"UserKeyMapping": 
  [{"HIDKeyboardModifierMappingSrc":0x700000054,
    "HIDKeyboardModifierMappingDst":0x700000067
  }]
}'
Run Code Online (Sandbox Code Playgroud)

是否可以仅将此更改分配给特定的键盘设备,例如,如果您想将一个设备映射到第二个的输出,但不影响第二个的功能?

该文章不再更新,并且似乎没有关于该命令如何工作的当前文档。

小智 11

我不太确定你的意思是“如果你想将一个设备映射到一秒的输出,但不影响第二个的功能?”,但你的问题的其余部分听起来你只是想重新映射一个特定的外部设备。这可以通过以下命令完成:

hidutil property --matching '{"ProductID":0x123}' --set '{"UserKeyMapping": 
 [{"HIDKeyboardModifierMappingSrc":0x700000054,
   "HIDKeyboardModifierMappingDst":0x700000067
 }]
}'
Run Code Online (Sandbox Code Playgroud)

您需要确定您的特定 ProductID 并将其插入到上面的命令中。您可以在以下位置找到内部和外部设备的 ProductID:

Apple icon > About This Mac > System Report > USB (under Hardware section in left panel)
Run Code Online (Sandbox Code Playgroud)

这些更改将在每次重新启动后恢复。为了使此修复永久有效,请遵循此答案中提供的解决方案。

  • 万分感谢 !完美解决外部键盘的映射问题。 (2认同)
  • 您可以获得所有输入设备的列表,其中包含 ProductID 和可用于与“hidutil list”匹配的其他属性。另请参阅“hidutil property --help”以获取有关属性匹配的一些示例 (2认同)