Open4

macOSからRemote DesktopでWindows環境にアクセスするとキーボードショートカットが辛いことになるのでKarabinerスクリプト書いたら幸せになった

Tak KakimotoTak Kakimoto

加えた挙動

  • Remote Desktop アプリがアクティブな時のみ機能する
  • 左のcommandキーをWinのControlキーとして動作する
  • 右のoptionキーをWinのWindowsキーとして動作する

これにより、macOSで多用する

  • command + A (すべて選択)
  • command + C (コピー)
  • command + X (切り取り)
  • command + V (貼り付け)
  • command + W (閉じる)
  • command + T (ブラウザなどで新しいタブを開く)
    といった操作を動作変更することなく利用可能に。Windowsキーはcontrolに比べ利用頻度は落ちるもののまったく使えなくなると困るので利用頻度の低い右optionキーにアサインした。
Tak KakimotoTak Kakimoto
rdp_custom_keymapping.json
{
  "title": "RDP Custom Behavior",
  "rules": [
    {
      "description": "RDPアプリ使用中は、左のcommandキーがWindowsにおけるControlキーとして動作する",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "left_command",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "left_control"
            }
          ],
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": [
                "^com\\.2X\\.Client\\.Mac$",
                "^com\\.microsoft\\.rdc\\.macos$"
              ]
            }
          ]
        }
      ]
    },
    {
      "description": "RDPアプリ使用中は、右のoptionキーがWindowsにおけるWindowsキーとして動作する",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "right_option",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "right_gui"
            }
          ],
          "conditions": [
            {
              "type": "frontmost_application_if",
              "bundle_identifiers": [
                "^com\\.2X\\.Client\\.Mac$",
                "^com\\.microsoft\\.rdc\\.macos$"
              ]
            }
          ]
        }
      ]
    }
  ]
}

Tak KakimotoTak Kakimoto

json ファイルの利用方法は詳しい説明がたくさん存在しているので
Karabiner-Elements complex modifications
と検索するなどしてください。

Tak KakimotoTak Kakimoto

改変したい場合はChatGPTなどのLLMに

macOSの環境下でMicrosoft Remote Desktop アプリを使ってWindows 10を使っています。
Karabinerのスクリプトを使って、キーボードの挙動をカスタマイズしたいと考えています。

まずは、勉強のため以下のスクリプトを読み込んでください。読み込めたら「はい」と回答してください。

## ここに上記のスクリプトをコピペ

と読み込んでもらってから

いま読み込んだスクリプトをひな形として、以下の変更点を加えてjsonフォーマットで出力してください。

## 変更点
- RDPアプリがアクティブな時のみ機能する
- RDPアプリ使用中は、左のcommandキーがWindowsにおけるControlキーとして動作する
- RDPアプリ使用中は、右のcontrolキーがWindowsにおけるWindowsキーとして動作する

のように依頼するとたぶん一発で機能するスクリプトが出てきます。