CSS調整

2020年1月27日

MacでWindowsキーボードを使う

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キーボードとして使えるようになりました。