Alfred Workflow の Hotkey trigger: hkob の雑記録 (47)

はじめに

hkob の雑記録の第47回目は、Alfred Workflows の object を一つずつ紹介していこうと思います。

Hotkey

Hotkey は Triggers セクションの一番上にあります。ホットキー トリガーを使用すると、Alfred を表示せずにアクションを実行したり、情報が事前に入力された状態で Alfred を表示したりできます。

Hotkey

各アクションの解説として、英語のマニュアルが用意されています。

www.alfredapp.com

私の Workflow だと ^⌘L が設定されています。

^⌘L

これをクリックすると以下のようなダイアログが表示されます。このトリガでは単に Notion の Launchpad を開くだけなので、特別に何か入力が必要になるわけではありません。このため、Argument は None になっています(というか、今回引数が設定できることを初めて知った)。せっかくなので、Notion AI に解説してもらいましょう。

Hotkey の設定

Hotkeyの設定画面の主要な項目について解説します:

  • Hotkey: ワークフローを起動するためのキーボードショートカットを設定する場所です。画像では Control + Command + L が設定されています。
  • Action: ホットキーが押されたときの動作を指定します。「Pass through to workflow」が選択されている場合、ワークフローに直接処理が渡されます。「Show Alfred」を選択すると、Alfredが表示された状態で起動します。
  • Argument: ワークフローに渡すオプションの引数を設定できます。「None」が選択されている場合は引数なしで実行されます。テキストを入力すると、それが動的な引数タイプに追加されます。

この設定画面では、ホットキーを使ってワークフローを素早く実行するための基本的な設定が行えます。特に引数が必要ない単純な動作(例:アプリケーションの起動など)の場合は、Argumentを「None」のままにしておくのが一般的です。

Hotkey の部分では右側に Modifier key の設定があります。

Modifier key の設定

マニュアルによると以下のように書かれています。

ホットキーが Mac で常にスムーズに機能するように、Alfred はホットキーの組み合わせに関連付けられたアクションを実行する前に、修飾キー (alt、cmd、ctrl) が押されるまで数ミリ秒待機します。

これを高速化したい場合は、トリガーの動作を変更して修飾キーを通過させ、より高速なホットキーを提供することができます。これを変更するには、ホットキー フィールドの右側にある緑色のアイコンをクリックします。

また、Action の部分には「Pass through to workflow」と「Show Alfred」の二つの選択肢があります。クエリをそのまま Workflow に渡すか、アルフレッドを表示のどちらかを選ぶことができます。通常は前者が多いと思います。

Action の設定

最後は Argument です。上に見せた Launchpad を表示するだけであれば None のままでいいですが、macOS の選択中のテキストやクリップボード、そしてペーストボードも利用可能なようです。

Alfred Arguments の設定・確認

トリガを実行した瞬間に引数が取れるという意識がなかったので、別途クリップボードの内容を取得する別のオブジェクトを使っていました。

もう一つのタブは Related Apps の設定画面でした。

Related Apps の設定

Related Appsタブの設定画面では、以下の項目を設定できます:

  • アプリケーションのフォーカス条件: ドロップダウンメニューで「have focus」(フォーカスがある時)が選択されています。これはホットキーが特定のアプリにフォーカスがある時のみ動作することを示します。
  • アプリケーションの追加/削除: 上部の空白エリアにFinderやAlfredの検索結果からアプリをドラッグ&ドロップして追加できます。右側の「+」「-」ボタンでも管理可能です。
  • Focused App Variable: チェックボックスで有効化でき、ホットキーがトリガーされた時にフォーカスされているアプリのバンドルIDを変数として設定できます。変数名は「focusedapp」として設定されています。

この設定により、特定のアプリケーションがアクティブな時のみホットキーが機能するように制限することができます。

ここでは、Hotkey を適用するアプリケーションや無視するアプリケーションを設定することができます。

Hotkey の除外設定

おわりに

Hotkey はショートカットキーを設定することで、Alfred のトリガを発火させる仕組みです。マニュアルにはもっと細かいこと書いてありますが、他人の Workflow などを別途インストールしない限り個人で Hotkey を共有するようなことはないかなと思っています。特定のアプリのキーとぶつかる時に除外することくらいでしょうか。

今回、ちゃんとマニュアルを読んだ結果、クリップボードの内容などを引数にできることに気づきました。ある Workflow ではクリップボードの内容を取得する object を使っていましたが、ここに集約できそうです。後で修正しておきます。