Hama Blog

Hama Blog

主にtech関連の記録

Macのディスプレイ間のマウスカーソル移動をショートカットで実現する (Karabiner-Elements を使用)

概要

以前以下の記事で、MacBook と外部ディスプレイ間 (2画面間) のマウスカーソル移動を AppleScript と Raycast を使ってショートカットでできるようにしたのだが、Karabiner-Elements を使えば簡単にできることに気づいたため、その方法をまとめた。
(※ おそらく3画面間には対応していないかも)

hama-engineer.hatenablog.com

記事執筆時の環境

  • macOS: Ventura 13.5.2

  • Karabiner-Elements: 14.12.0

適用方法

任意のキー1つで対応する方法

※ キー1つに割り当てることはほぼないと思いますが一応紹介。

任意のキーの組み合わせで対応する方法

公式の rule も提供されているかもしれないですが、今回は独自 rule を作成しました。

まず、独自 rule を定義するには以下に json ファイルを用意する必要があります。

/Users/ユーザ名/.config/karabiner/assets/complex_modifications

上記に適当な名前の json ファイルを作成してください。

作成したら以下の内容をコピペしてください。

※ 今回は left_control + 1 でメインウィンドウに、left_control + 2 でサブウィンドウにマウスカーソルがそれぞれ中央に移動できるようにしました。

(適宜、好きなキーの組み合わせに割り当ててください)

{
  "title": "mouse cursor movement between multiple windows [left_control + number key]",
  "rules": [
    {
      "description": "move mouse cursor to 1st window [left_control + 1]",
      "manipulators": [
        {
          "from": {
            "key_code": "1",
            "modifiers": {
              "mandatory": [
                "left_control"
              ]
            }
          },
          "to": [
            {
              "software_function": {
                "set_mouse_cursor_position": {
                  "x": "50%",
                  "y": "50%",
                  "screen": 0
                }
              }
            }
          ],
          "type": "basic"
        }
      ]
    },
    {
      "description": "move mouse cursor to 2nd window [left_control + 2]",
      "manipulators": [
        {
          "from": {
            "key_code": "2",
            "modifiers": {
              "mandatory": [
                "left_control"
              ]
            }
          },
          "to": [
            {
              "software_function": {
                "set_mouse_cursor_position": {
                  "x": "50%",
                  "y": "50%",
                  "screen": 1
                }
              }
            }
          ],
          "type": "basic"
        }
      ]
    }
  ]
}

json ファイルを作成したら、次に Karabiner-Elements の Complex Modifications から Add rule を押してください。

そうすると、表示された画面に先ほど追加した json の rule が新たに追加されていると思います。

該当の rule を個別に Enable もしくは Enable All をしたら適用完了です。

所感

めっちゃ簡単だった。

以前の記事 でも少し触れたように有料アプリもあるみたいだが、Karabiner-Elements (無料)で簡単にでき、しかも好きなキーに割り当てられるため、断然これで十分そう。

Karabiner-Elements ありがたい。。