トリガーシーケンス

複数のキー入力イベントのシーケンスを必要とするトリガー。

Ghostty は、アクションを発動するためにトリガーの シーケンスを必要とするキーバインドに対応しています。たとえば、 新規ウィンドウを開くために ctrl+a に続けて n を押させる、ということができます。 他のソフトではこれは "リーダーキー"、"キーコード"、"キーテーブル" など と呼ばれることもあります。

トリガーのシーケンスを指定するには、 通常のトリガー構文 を使い、 シーケンス内のトリガーを > 文字で区切ります。 以下の例を参照:

keybind = ctrl+a>n=new_window

Warning

シーケンスを ghostty の CLI 引数として定義する場合、 ほとんどのシェルで > が特殊文字であるため、キーバインドを引用符で囲む必要があるでしょう。 例:ghostty --keybind='ctrl+a>n=new_window'

トリガーシーケンスにはいくつかの特別な扱いがあります:

  • Ghostty はシーケンスの次のキーを無期限に待ちます。タイムアウトを指定する 方法はありません。プレフィックスキーの入力を強制する唯一の方法は、 そのキーを出力する専用のキーバインドを割り当てる(つまり ctrl+a>ctrl+a=text:foo)か、 バインドされていないキーを押す(両方のキーがプログラムへ送られる)ことです。

  • シーケンス内のプレフィックスが以前バインドされていた場合、そのシーケンスは 以前のバインドを上書きします。たとえば、ctrl+a が new_window に バインドされ、ctrl+a>n が new_tab にバインドされている場合、ctrl+a を押しても 何も起きません。

  • さらに、以前バインド済みのシーケンスのプレフィックスが、新しい 非シーケンスのバインドで使われた場合、以前バインド済みの シーケンス全体がアンバインドされます。たとえば、ctrl+a>n と ctrl+a>t をバインドした後に ctrl+a を直接バインドすると、ctrl+a>n と ctrl+a>t の両方がアンバインドされます。

  • トリガーシーケンスは、global: や all: がプレフィックスとなっている トリガーには使えません。これは将来取り除ける可能性のある制限です。