機能
Ghostty がサポートする機能と、それらに関連するドキュメント。
Ghostty は非常に機能豊富なターミナルです。
ターミナルの機能は、大きく 2 つのカテゴリーに 分かれます:エンドユーザー向けの機能と、 ターミナルアプリケーション開発者向けの 機能です。
エンドユーザー向けの機能には、マルチウィンドウ、タブ、分割(splits)、 合字(リガチャ)、自動更新などがあります。これらは、動作中の ターミナルアプリケーション(シェル、テキストエディターなど)を変更せず にターミナルの使用をより快適にする ことができます。
ターミナルアプリケーション開発者向けの機能には、Kitty Graphics Protocol、Kitty Keyboard Protocol、同期描画、 ライト/ダークモードの通知などがあります。これらの機能により、 ターミナルアプリケーションは他のターミナルエミュレーターでは 出来なかったことができるようになります。これらの機能は エンドユーザーが直接使うわけではありませんが、日頃使っている ターミナルアプリケーションがより多くのことができるようになるので エンドユーザーも恩恵を受けます。
Ghostty がサポートする、規模が大きい、あるいは興味深い 機能の一部をまとめたリスト:
-
クロスプラットフォーム:Ghostty は macOS と Linux で動作します。それぞれの プラットフォームのネイティブ UI コンポーネントを使って、 自然な体験を提供します。Windows 対応を計画しています。
-
ウィンドウ、タブ、分割:Ghostty は複数のウィンドウをサポートし、 それぞれにタブと分割があります。これらはすべて ネイティブ UI コンポーネントで描画されます。
-
GPU アクセラレーション描画:Ghostty は macOS では Metal を、 Linux では OpenGL を使いターミナル画面を 描画します。
-
テーマ:Ghostty は数百のテーマを同梱しており、 1 行の設定で選択できます。テーマはシステムの ダーク/ライトモードに合わせて自動的に切り替えることも できます。自分でテーマを作成 することもできます。
-
合字(リガチャ):合字を含むフォントを使うと、Ghostty は それを正しく描画します。有効化または無効化したい特定の フォント機能を 指定することもできます。
-
書素クラスタリング:旗や肌の色など、複数コードポイントからなる emoji を 1 文字として正しく描画します。アラビア語やヘブライ語のような一部の 右から左に書く文字体系における個々の書素クラスタ も正しく描画されますが、左 から右へ書くテキストしかサポートされ ません。
-
Kitty Graphics Protocol:Ghostty は Kitty Graphics Protocol をサポートしており、ターミナルアプリケーションが ターミナル内に画像を直接描画できます。
Ghostty の主要な設計目標のひとつは 、プラットフォームごとに専用に作られたネイティブアプリのように見え、 感じられ、そして振る舞うことです。 ここでは、Ghostty が持つプラットフォームネイティブ機能の 一部をリストします。
- クイックターミナル:メニューバーの下から アニメーションしながら降下してくる軽量ターミナルで、作業を 中断せずに即座にアクセスできます。
- AppleScript オートメーション:ウィンドウ、タブ、端末、レイアウト、入力イベントをスクリプトから扱うための 組み込み AppleScript 辞書を備えています。詳細は AppleScript ドキュメント を参照。
- ネイティブタブ、分割など:タブや分割のような UI 要素には、 他のターミナルエミュレーターのように独自に描画したテキスト ではなく、ネイティブ macOS コンポーネントを 使用します。
- プロキシアイコン:タイトルバーのプロキシ アイコンをドラッグして端末セッションのファイルを移動、または アクセス、あるいは 直接ファイルパスへ移動するこ とができます。
- Quick Look:テキストを 3 本指でタップまたはフォース タッチすると、定義、Web 検索 などに macOS Quick Look を使用できます。
- セキュアキーボード入力:パスワードプロンプトを 自動検出するか、セキュアキーボード 入力を手動で有効にし、他のプロセスから パスワードを保護できます。セキュアキーボード入力が有効な 時期は動的なロックアイコンがターミナルの 右上に表示されるため わかります。
ターミナルアプリケーション開発者にとって、Ghostty は 現在使用できる中で最もモダンかつ包括的な ターミナルエミュレーターのひとつだと 私たちは信じています1。Ghostty の 目標は、レガシーなアプリケーションに最大限の 互換性を持ちつつ、新しいアプリケーションには最も モダンな機能を提供することです。
これは具体的には、Ghostty が 幅広い制御シーケンス、ターミナル機能、 ターミナルプロトコルをサポートしていることを意味します。 そして これらの機能の振る舞いを決定するために、 次の原則に従っています:
-
Xterm 互換性:xterm はターミナルエミュレーションの事実上の 標準です。xterm がある動作をするなら、 私たちも同じ動作をすべきです2。
-
プロトコル発信元との互換性:プロトコルを 定義したターミナルがあるやり方で振る舞うなら、たとえそれが明示的に 規定されていなくても私たちは その振る舞いに従うべきです3。
-
事実上の標準との互換性:ある動作が広く 標準として受け入れられているなら、私たちはその振る舞いに 従うべきです。“広く受け入れられて いる” は概して世論と利用実態に基づく 主観的なものです。
Ghostty がサポートするターミナル開発者機能の リストは リファレンス を 参照してください(ただし、執筆時点では 作業進行中であることに注意)。
-
If not, we want to know! Please ディスカッションを立ち上げる。 ↩
-
We may put some xterm behaviors behind a configuration flag if その動作に疑問があるか、広く受け入れられていない場合。 ↩
-
If a behavior differs between the specification and the terminal that defined the protocol, we open a discussion to determine the correct behavior. ↩