機能

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 が持つプラットフォームネイティブ機能の 一部をリストします。

macOS

  • クイックターミナル:メニューバーの下から アニメーションしながら降下してくる軽量ターミナルで、作業を 中断せずに即座にアクセスできます。
  • AppleScript オートメーション:ウィンドウ、タブ、端末、レイアウト、入力イベントをスクリプトから扱うための 組み込み AppleScript 辞書を備えています。詳細は AppleScript ドキュメント を参照。
  • ネイティブタブ、分割など:タブや分割のような UI 要素には、 他のターミナルエミュレーターのように独自に描画したテキスト ではなく、ネイティブ macOS コンポーネントを 使用します。
  • プロキシアイコン:タイトルバーのプロキシ アイコンをドラッグして端末セッションのファイルを移動、または アクセス、あるいは 直接ファイルパスへ移動するこ とができます。
  • Quick Look:テキストを 3 本指でタップまたはフォース タッチすると、定義、Web 検索 などに macOS Quick Look を使用できます。
  • セキュアキーボード入力:パスワードプロンプトを 自動検出するか、セキュアキーボード 入力を手動で有効にし、他のプロセスから パスワードを保護できます。セキュアキーボード入力が有効な 時期は動的なロックアイコンがターミナルの 右上に表示されるため わかります。

ターミナル (VT) 機能

ターミナルアプリケーション開発者にとって、Ghostty は 現在使用できる中で最もモダンかつ包括的な ターミナルエミュレーターのひとつだと 私たちは信じています1。Ghostty の 目標は、レガシーなアプリケーションに最大限の 互換性を持ちつつ、新しいアプリケーションには最も モダンな機能を提供することです。

これは具体的には、Ghostty が 幅広い制御シーケンス、ターミナル機能、 ターミナルプロトコルをサポートしていることを意味します。 そして これらの機能の振る舞いを決定するために、 次の原則に従っています:

  1. Xterm 互換性:xterm はターミナルエミュレーションの事実上の 標準です。xterm がある動作をするなら、 私たちも同じ動作をすべきです2。

  2. プロトコル発信元との互換性:プロトコルを 定義したターミナルがあるやり方で振る舞うなら、たとえそれが明示的に 規定されていなくても私たちは その振る舞いに従うべきです3。

  3. 事実上の標準との互換性:ある動作が広く 標準として受け入れられているなら、私たちはその振る舞いに 従うべきです。“広く受け入れられて いる” は概して世論と利用実態に基づく 主観的なものです。

Ghostty がサポートするターミナル開発者機能の リストは リファレンス を 参照してください(ただし、執筆時点では 作業進行中であることに注意)。

Footnotes

  1. If not, we want to know! Please ディスカッションを立ち上げる。 ↩

  2. We may put some xterm behaviors behind a configuration flag if その動作に疑問があるか、広く受け入れられていない場合。 ↩

  3. If a behavior differs between the specification and the terminal that defined the protocol, we open a discussion to determine the correct behavior. ↩