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

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

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

自分のMacBook Proのキーボード配列はJIS配列なのですが、普段は外付けキーボードでUS配列を使用しています。

できればずっとUS配列にしたいのですが、出先にまで外付けキーボードを持ち運びするのも面倒なので、出先ではJIS配列になってしまいます。

そんな状況で、JIS配列の設定とUS配列の設定が一緒になると困るので、Karabiner-Elementsで「JIS」「US」とそれぞれのプロファイルを登録しておいて、切り替えて使うようにしています。

Karabiner-Elementsのプロファイル切り替え

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

Karabiner-Elementsのプロファイル切り替え(メニューバー)

というわけで今回は、このKarabiner-Elementsのプロファイル切り替えをAlfredから行えるWorkflowを作成してみます。

ちなみに、Karabiner-Elementsを知らない方は過去に記事にしているので、そちらもご覧ください。

Workflowの作成

まずはAlfredの環境設定の[Workflows]のサイドバー下の「+」ボタンを押し、「Blank Workflow」をクリックして必要情報を入力します。

今回の場合はプロファイルを切り替えるWorkflowなので、名前は「Change Profile」としておきます。

Workflowの作成

キーワード部分の設定

黒い背景部分を右クリックして、[Inputs]→[List Filter]を選択します。

キーワードに関しては「Karabiner-Elements」の略でkeにします。
あとは下の「+」ボタンから選択項目を追加していきます。

List Filterの設定

今回は自分が登録している、「JIS」と「US」の2通りを登録しておきました。

条件分岐の設定

List Filterの右横にあるポッチをクリックして、[Utilities]→[Conditional]を選択します。

左から3つ目と、1番右の入力欄に、先ほどの「Arg」の値(「jis」と「us」)を入力ます。

Consitionalの条件分岐設定

プロファイル切り替え処理の設定

これで選択した項目に応じて、処理を分けられるようになったので、それぞれの条件分岐先で、[Actions]→[Terminal Command]をクリックします。

このWorkflow Objectではターミナルを開いてコマンドを実行できます(実行されるターミナルアプリは、[Features]→[Terminal]で設定してあるアプリが開きます)。

Terminal Commandの設定

入力するコマンドは下記の通りです。最後にプロファイル名を入力する場所があるので、そこにはそれぞれ切り替えたいプロファイル名を入力します。

'/Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_cli' --select-profile 'プロファイル名'

遅延処理とターミナル終了処理の設定

いまのままではターミナルが開きっぱなしになってしまうので、最後にターミナルを隠す処理を追加したいです(不要な方はスキップして構いません)。

まず、少し時間を空けてから実行しないと、ターミナルの処理中に隠されてしまうので、[Utilities]→[Delay]で遅延処理の設定をはさみます。

そのあと、[Actions]→[Launch Apps / Files]を選択して、実行されるターミナルアプリをドラッグして追加します。

このWorkflow Objectは本来、アプリを起動したりするものなのですが、右下の「Toggle visibility for apps」と書かれたチェックボックスがあるので、それにチェックを入れると、すでに開かれているアプリは非表示にしてくれます。

ターミナルを終了する設定

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

最終的なWorkflow

まとめ

今回は、Karabiner-Elementsの操作をAlfredで行うという少し変わったことをしましたが、ターミナルのコマンドでできることや、AppleScriptでできることはWorkflowでも比較的簡単に実行ができてしまいます。

また、List Filterを使えばAlfredっぽい「選択して実行」も簡単に作れます。

毎回やっている面倒なことが、もしターミナルコマンドで実行できるのであれば、Workflowを作ってみると良さそうです。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

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

Twitterをフォロー Facebookでいいね