用 Apple 自带的 hidutil 来暂时替代了 Karabiner-Elements, 我的场景是把 HHKB 的 left-opt => left-control , left-control => Caps Lock,并且在没有 HHKB 的时候回到系统键盘自带的 mapping 上,示例如下:
# ~/.zshrc
function hhkb(){
hidutil property --set '{
"UserKeyMapping": [
{
"HIDKeyboardModifierMappingSrc": 0x7000000E0,
"HIDKeyboardModifierMappingDst": 0x700000039
},
{
"HIDKeyboardModifierMappingSrc": 0x7000000E2,
"HIDKeyboardModifierMappingDst": 0x7000000E0
}
]
}'
}
function dishhkb(){
hidutil property --set '{
"UserKeyMapping": []
}'
}
键值表参考: https://developer.apple.com/library/archive/technotes/tn2450/_index.html
缺点是连上 HHKB/重启电脑后,要重新执行 hhkb 来激活。