WebDesigner's Memorandumウェブデザイナーの備忘録

右側の修飾キーをフル活用!Karabiner-ElementsでKeyboard Maestroのマクロを発火させる方法

Karabiner-ElementsでKeyboard Maestroのマクロを発火させる方法

Keyboard Maestroでショートカットキーを設定すると、修飾キーは左右どちらも反応してしまいます。

しかしKarabiner-Elementsだと、left_commandright_commandどちらか一方でしか反応しないショートカットキーを作れます。
この特徴を利用して、今回はKarabiner-ElementsからKeyboard Maestroのマクロを発火させる方法をまとめておきます。

うまく利用すれば、あまり使わない右側の修飾キーをフル活用できます。

Keyboard Maestroの設定

まずはKeyboard Maestroで、発火させる用のマクロを作ります。

トリガー設定の「New Trigger」の下にある「Or by script」をクリックして「Or by Shell script」に変更します。

Keyboard Maestroで発火させるマクロ

するとShellScriptのコードが表示されます。
このShellScriptを実行すれば、マクロが発火されるので、あとはKarabiner-ElementsでShellScriptが実行されるように設定しましょう。

Karabiner-Elementsの設定

Karabiner-Elementsを自分で設定する場合はJSONを書く必要がありますが、ほとんどコピペで問題ありません。
下記パスに新規JSONファイルkm.jsonを作成します。

~/.config/karabiner/assets/complex_modifications/

作成したJSONファイルの内容は下記の通りです。

{
  "title": "Run Keyboard Maestro Macro",
  "rules": [
    {
      "description": "Run Keyboard Maestro Macro",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "N",
            "modifiers": {
              "mandatory": [
                "right_command"
              ],
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "shell_command": osascript -e 'tell application "Keyboard Maestro Engine" to do script "23F62CCB-AB7E-4378-BB3A-66972D3ECC67"'
            }
          ]
        }
      ]
    }
  ]
}

そして、ショートカットキーとAppleScriptの設定を書きかえます。

項目内容
key_code入力するキーの種類
mandatory一緒に入力する修飾キーの種類
shell_commandAppleScriptのコマンド

key_codeとmandatoryの入力

key_codemandatoryに関してはKarabiner-EventViewerを使って調べます。

Karabiner-EventViewer

Karabiner-EventViewerを起動してキーボードを押すと、押したキーと離れたキーの情報が表示されます。あとは該当のキーの「Name」の列をコピーしてJSONに書きかえます。

shell_command

shell_commandに関してはKeyboard MaestroのShellScriptコードをペーストします。
ちなみに、#のあとはコメントなので、最初の行だけペーストすればOKです。

Keyboard MaestroのShell scriptで選択する行

そして少しややこしいのですが、下記の調整をします。

  1. もともとあったダブルクオーテーション(")の前にバックスラッシュ(\)を入力します
  2. 入力したら、コマンド全体をダブルクオーテーションで囲みます
osascript -e 'tell application "Keyboard Maestro Engine" to do script "23F62CCB-AB7E-4378-BB3A-66972D3ECC67\"'

上記のコードの場合は下記のようになります。

"osascript -e 'tell application \"Keyboard Maestro Engine\" to do script \"23F62CCB-AB7E-4378-BB3A-66972D3ECC67\"'"

これでshell_commandの設定は完了です。

設定の反映

これでKarabiner-Elementsの設定ファイルの作成は完了したので、最後に設定を反映させます。

Karabiner-Elementsの[Complex modifications]にある「Add rule」から「Run Keyboard Maestro Macro」を「Enable」すれば設定完了です。

Karabiner-Elementsのルールを追加

もし「Run Keyboard Maestro Macro」が見当たらなければ、Karabiner-Elementsを再起動するか、設定ファイルに問題があるので見直してみてください。

実際の利用シーン

このように、気軽にショートカットキーを変更できないので、全てのアプリケーションで使うようなグローバルなマクロをright_commandright_shiftに設定しておくと良さそうです。

何より、left_commandleft_shiftを押せば普通のショートカットキーが発火するので、ショートカットキーのバッティングが起こらないのが魅力的です。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね