Karabiner-Elementsの設定メモ。
やりたいこと
※ちなみにJISキーボードです
- MacにWindowsキーボードを繋いで以下のキーを変換する
- CapsLockをcontrolに
- Windowsキーをoptionに
- Altをcommandに
- スペースの左右のキーを変換・無変換に
- でもMacからWindowsにリモートデスクトップしたときは上を無効にする
Karabiner-Elementsのインストール
以下から落として入れるだけ
https://pqrs.org/osx/karabiner/
Windowsキーボードの条件を作る
Launch EventViewer - Devices
から該当のキーボードを探し、
{
"device_id": 000000,
"is_karabiner_virtual_hid_device": false,
"is_keyboard": true,
"is_pointing_device": false,
"location_id": 000000,
"product": "USB Keyboard",
"product_id": 000000,
"transport": "USB",
"vendor_id": 0000
}
product_id, vendor_id を使って以下JSONを作る。
(ちょっと冗長。全体に跨る条件指定とかできないのかな。)
{
"title": "Custom Key Binds",
"rules": [
{
"description": "Windows Keyboard Unless RDC",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "caps_lock"
},
"to": {
"key_code": "left_control"
},
"conditions": [
{
"type": "frontmost_application_unless",
"bundle_identifiers": [ "com.microsoft.rdc.macos" ]
},
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 0000,
"product_id": 000000
}
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "japanese_pc_nfer"
},
"to": {
"key_code": "japanese_eisuu"
},
"conditions": [
{
"type": "frontmost_application_unless",
"bundle_identifiers": [ "com.microsoft.rdc.macos" ]
},
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 0000,
"product_id": 000000
}
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "japanese_pc_xfer"
},
"to": {
"key_code": "japanese_kana"
},
"conditions": [
{
"type": "frontmost_application_unless",
"bundle_identifiers": [ "com.microsoft.rdc.macos" ]
},
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 0000,
"product_id": 000000
}
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "left_command"
},
"to": {
"key_code": "left_option"
},
"conditions": [
{
"type": "frontmost_application_unless",
"bundle_identifiers": [ "com.microsoft.rdc.macos" ]
},
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 0000,
"product_id": 000000
}
]
}
]
},
{
"type": "basic",
"from": {
"key_code": "left_option"
},
"to": {
"key_code": "left_command"
},
"conditions": [
{
"type": "frontmost_application_unless",
"bundle_identifiers": [ "com.microsoft.rdc.macos" ]
},
{
"type": "device_if",
"identifiers": [
{
"vendor_id": 0000,
"product_id": 000000
}
]
}
]
}
]
}
]
}
あとは
~/.config/karabiner/assets/complex_modifications/
下に適当に1.jsonとかで保存して、
Preferences - Complex modifications - Add rule
から有効にする。
これで、他のキーボードには影響しないように、リモートデスクトップ以外ではMacのキー配列っぽく、リモートデスクトップではそのままWindowsキーボードとして使えるようになりました。