AlfredでKarabiner-Elementsのプロファイルを切り替えるWorkflowの作り方

自分のMacBook Proのキーボード配列はJIS配列なのですが、普段は外付けキーボードでUS配列を使用しています。
できればずっとUS配列にしたいのですが、出先にまで外付けキーボードを持ち運びするのも面倒なので、出先ではJIS配列になってしまいます。
そんな状況で、JIS配列の設定とUS配列の設定が一緒になると困るので、Karabiner-Elementsで「JIS」「US」とそれぞれのプロファイルを登録しておいて、切り替えて使うようにしています。

プロファイルはメニューバーから切り替えることもできるのですが、わざわざメニューバーを開くのも面倒です。

というわけで今回は、このKarabiner-Elementsのプロファイル切り替えをAlfredから行えるWorkflowを作成してみます。
ちなみに、Karabiner-Elementsを知らない方は過去に記事にしているので、そちらもご覧ください。
Workflowの作成
まずはAlfredの環境設定の[Workflows]のサイドバー下の「+」ボタンを押し、「Blank Workflow」をクリックして必要情報を入力します。
今回の場合はプロファイルを切り替えるWorkflowなので、名前は「Change Profile」としておきます。

キーワード部分の設定
黒い背景部分を右クリックして、[Inputs]→[List Filter]を選択します。
キーワードに関しては「Karabiner-Elements」の略でkeにします。
あとは下の「+」ボタンから選択項目を追加していきます。

今回は自分が登録している、「JIS」と「US」の2通りを登録しておきました。
条件分岐の設定
List Filterの右横にあるポッチをクリックして、[Utilities]→[Conditional]を選択します。
左から3つ目と、1番右の入力欄に、先ほどの「Arg」の値(「jis」と「us」)を入力ます。

プロファイル切り替え処理の設定
これで選択した項目に応じて、処理を分けられるようになったので、それぞれの条件分岐先で、[Actions]→[Terminal Command]をクリックします。
このWorkflow Objectではターミナルを開いてコマンドを実行できます(実行されるターミナルアプリは、[Features]→[Terminal]で設定してあるアプリが開きます)。

入力するコマンドは下記の通りです。最後にプロファイル名を入力する場所があるので、そこにはそれぞれ切り替えたいプロファイル名を入力します。
'/Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_cli' --select-profile 'プロファイル名'遅延処理とターミナル終了処理の設定
いまのままではターミナルが開きっぱなしになってしまうので、最後にターミナルを隠す処理を追加したいです(不要な方はスキップして構いません)。
まず、少し時間を空けてから実行しないと、ターミナルの処理中に隠されてしまうので、[Utilities]→[Delay]で遅延処理の設定をはさみます。
そのあと、[Actions]→[Launch Apps / Files]を選択して、実行されるターミナルアプリをドラッグして追加します。
このWorkflow Objectは本来、アプリを起動したりするものなのですが、右下の「Toggle visibility for apps」と書かれたチェックボックスがあるので、それにチェックを入れると、すでに開かれているアプリは非表示にしてくれます。

最終的に下記のようになっていれば完成です。

まとめ
今回は、Karabiner-Elementsの操作をAlfredで行うという少し変わったことをしましたが、ターミナルのコマンドでできることや、AppleScriptでできることはWorkflowでも比較的簡単に実行ができてしまいます。
また、List Filterを使えばAlfredっぽい「選択して実行」も簡単に作れます。
毎回やっている面倒なことが、もしターミナルコマンドで実行できるのであれば、Workflowを作ってみると良さそうです。


Macでマクロの作成が出来るKeyboard Maestroの基本的な使い方
ATOKで言葉の意味を確かめる「電子辞典検索」タブの設定項目
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Alfredからメニューバーの項目を検索・実行するWorkflow「Menu Bar Search」
ATOKの文字パレットの「漢字検索」で特定の漢字を探し出す方法
2019年時点で使っている便利なAlfredのWorkflowまとめ
BetterTouchToolでトラックパッドやタッチバーにアクションを割り当てる
Chrome拡張機能のVimiumを使ってキーボードだけでブラウザを操作する
Macでダブルクォーテーションを入力すると自動で変換されてしまうのを無効にする
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
macOSのコマンドパレット比較!SpotlightとAlfred、Raycastどれを使えばいい?