Ghostty ドキュメント速読:インストール、設定、日常利用の要点

Ghostty 公式ドキュメントをもとに、位置づけ、インストール方法、設定ファイル、キーバインド、テーマ、フォント、Shell 統合を整理し、既存のターミナルを置き換える候補になるかを判断しやすくする。

Ghostty は新しいターミナルエミュレーターだが、単に「また一つ速いターミナル」が増えたという話ではない。公式ドキュメントによると、Ghostty は速度、機能、ネイティブなデスクトップ体験の三つを同時に満たそうとしている。つまり、GPU アクセラレーションと良好なレンダリング性能を目指しつつ、macOS と Linux ではできるだけ本物のローカルアプリのように振る舞い、すべての操作を独自描画 UI に押し込まない設計を目指している。

iTerm2、Kitty、Alacritty、WezTerm、あるいは OS 標準のターミナルを使っているなら、Ghostty で最も注目すべき点は単一の機能ではない。「すぐ使えること」と「深く設定できること」を同時に備えている点だ。デフォルト設定でもすぐ使える一方、さらに調整したくなったときには、設定ファイル、テーマ、キーバインド、フォント、Shell 統合、ターミナル制御シーケンスまで、公式ドキュメントが一通りの入口を用意している。

まず位置づけを見る

Ghostty の中核的な位置づけは、次の三点にまとめられる。

  • クロスプラットフォームなターミナルエミュレーターで、現時点では macOS と Linux に重点を置いている。
  • プラットフォームネイティブ UI を使う。macOS 版は Swift、AppKit、SwiftUI、Linux 版は Zig と GTK4 を使う。
  • ターミナルの中核は libghostty で、GUI アプリはこの共有コアを中心に構築されている。

この設計は日常体験に影響する。タブ、分割、エラーメッセージ、ウィンドウ状態の復元、システムショートカットなどは、単に「デスクトップアプリらしく見える部品」として作られているのではなく、各 OS の操作習慣にできるだけ近づけられている。macOS と Linux のデフォルトショートカットも、それぞれのプラットフォーム慣習に合わせて分けられている。

インストール:macOS は直接的、Linux はディストリビューション次第

公式のプリビルドバイナリは主に macOS 向けだ。もっとも一般的な方法は .dmg をダウンロードし、開いたあと Ghostty を Applications ディレクトリにドラッグすること。Homebrew ユーザーは、コミュニティが管理する cask も利用できる。

1
brew install --cask ghostty

Linux はより分散している。Ghostty のドキュメントでは、ディストリビューションごとのパッケージマネージャー、コミュニティバイナリ、ソースビルドが分けて説明されている。Arch、Alpine、Gentoo、NixOS、Snap、Solus、Void などにはそれぞれの経路がある。公式または信頼できるリポジトリがない場合、ドキュメントは第三者バイナリを気軽に入れるより、ソースからビルドする方向を勧めている。

これはサーバーや作業用マシンでは特に重要だ。ターミナルエミュレーターは大量の入出力、クリップボード、リンク、SSH セッション、ローカルファイルパスを扱う。インストール元は保守的に選び、公式 macOS パッケージ、ディストリビューションのリポジトリ、自分で出所を確認できるビルド手順を優先したい。

設定:いきなり大きな dotfiles をコピーしない

Ghostty の設定哲学は「ゼロ設定で使えること」だ。デフォルトフォントには JetBrains Mono が含まれ、Nerd Font もサポートされるため、多くのユーザーは最初に起動した時点で普通に作業できる。ドキュメントでは、主観的ではない設定を変えないと快適でない場合、それはデフォルト動作にすべきではないかと考えることさえ勧めている。

本当にカスタマイズが必要な場合、Ghostty はテキスト設定ファイルを使う。現在の設定ファイル名は config.ghostty で、旧バージョンでは config もサポートされる。代表的なパスは次の通り。

1
2
3
4
$XDG_CONFIG_HOME/ghostty/config.ghostty
$XDG_CONFIG_HOME/ghostty/config
$HOME/.config/ghostty/config.ghostty
$HOME/.config/ghostty/config

macOS では次の場所も読み込まれる。

1
2
$HOME/Library/Application Support/com.mitchellh.ghostty/config.ghostty
$HOME/Library/Application Support/com.mitchellh.ghostty/config

設定構文はとても直接的で、key = value という形だ。

1
2
3
4
font-family = JetBrains Mono
font-size = 14
theme = light:Rose Pine Dawn,dark:Rose Pine
keybind = ctrl+shift+t=new_tab

実用的な勧めとして、最初から他人の完全な設定をコピーしない方がよい。まず数日そのまま使い、最初はフォント、フォントサイズ、テーマの三つだけを変える。キーバインド、分割、ウィンドウ、Shell 統合で実際に摩擦を感じてから、必要な設定を一つずつ足していく方が安定する。

ドキュメント検索:ローカルでも完全な設定を確認できる

Ghostty には多くの設定項目があり、公式ドキュメントでは Option Reference にまとめられている。Web ページだけでなく、インストール後はローカルからも設定リファレンスを確認できる。

1
ghostty +show-config --default --docs

このコマンドはデフォルト設定とドキュメントを標準出力に出すため、ページャーにつなぐと検索しやすい。

1
ghostty +show-config --default --docs | less

利用可能なフォントを見るには次を使う。

1
ghostty +list-fonts

内蔵テーマと利用可能なテーマを見るには次を使う。

1
ghostty +list-themes

デフォルトキーバインドを見るには次を使う。

1
ghostty +list-keybinds --default

これらのコマンドは、Web 上の断片をコピーするより信頼しやすい。自分が実際にインストールしている Ghostty のバージョンから出力されるからだ。

キーバインド:「アクション」を中心に考える

Ghostty のキーバインド設定形式は次の通り。

1
keybind = trigger=action

trigger はキー入力のトリガーで、action は Ghostty が実行する動作だ。新しいタブを作る、現在の surface を閉じる、設定を再読み込みする、プロンプトへジャンプする、といったものはすべて action になる。このモデルはわかりやすい。何かのメニュー項目を変更しているのではなく、入力シーケンスを一つの動作に紐づけている。

設定を変更した後は、実行中に再読み込みできる。デフォルトショートカットは次の通り。

  • Linux:ctrl+shift+,
  • macOS:cmd+shift+,

ただし、すべての設定が即時反映されるわけではない。新しく作るターミナルにだけ影響するものもあれば、完全な再起動が必要なものもある。「設定を書いたのに変わらない」と感じたら、構文を疑い続ける前に、その項目の説明を確認した方が早い。

テーマとフォント:まず内蔵を使い、その後で微調整する

Ghostty は多数のテーマを同梱しており、システムのライトモード、ダークモードに応じて別テーマへ切り替えることもできる。

1
theme = light:Rose Pine Dawn,dark:Rose Pine

テーマはカスタムファイルから読み込むこともできる。ドキュメントの注意は明確だ。テーマファイルは本質的には Ghostty の設定ファイルであり、多くの設定項目を指定できるため、信頼できない出所のテーマを安易に使うべきではない。

フォントについては、font-family を複数回指定して fallback フォントを設定できる。多言語環境では便利で、主フォントに英字や記号を担当させ、後続のフォントで中国語、日本語、その他の文字を補える。emoji、太字、斜体、リガチャなどの細部で問題が出たら、Option Reference で対応する項目を確認すればよい。

Shell 統合:SSH ユーザーは特に確認したい

Ghostty は bashelvishfishnushellzsh 向けに shell integration を自動注入できる。有効にすると、いくつかの体験が自然になる。

  • 新しいターミナルを前のターミナルの作業ディレクトリから開ける。
  • 複雑なプロンプトが resize 時に誤って回り込まず、再描画される。
  • プロンプトマーカーを使ってコマンド出力の間を移動できる。
  • プロンプト上で、編集習慣に合ったカーソル挙動が使える。

自動注入したくない場合は、設定で無効にできる。

1
shell-integration = none

さらに注意したいのは SSH だ。Ghostty は TERM として xterm-ghostty を使うが、多くのリモートホストにはまだ対応する terminfo がない。ドキュメントでは ssh-envssh-terminfo という二つの shell integration 機能が用意されており、デフォルトでは無効だが必要に応じて有効化できる。

1
shell-integration-features = ssh-env,ssh-terminfo

古いサーバー、コンテナ、踏み台、厳格に管理された本番環境へよく接続するなら、これらを有効にする前に公式の Terminfo と Shell Integration ドキュメントを読んでおきたい。ターミナル能力のネゴシエーションは地味だが、問題が起きると色の異常、ショートカットの不具合、全画面プログラムの表示崩れとして現れることがある。

私の試し方

Ghostty が自分に合うかだけを判断したいなら、次の順で試すとよい。

  1. インストール後、設定を書かずに一日そのまま使う。
  2. font-familyfont-sizetheme だけを調整する。
  3. まず他人のショートカット表を取り込むのではなく、ghostty +list-keybinds --default でデフォルトを確認する。
  4. SSH をよく使うなら、リモートホストの terminfo 互換性を先に確認する。
  5. 最後に分割、ウィンドウ、透明度、タイトルバー、背景画像などの見た目やワークフローの好みを調整する。

Ghostty のドキュメントはかなりエンジニアリング寄りで、「宣伝ページ」ではなく「設定リファレンスマニュアル」として読むのに向いている。多くのユーザーにとって、本当の判断基準は単純だ。デフォルト体験がすでに快適か、日常のエディタ、Shell、SSH、tmux、Zellij が安定しているか。このあたりがうまくいくなら、Ghostty は長期的なターミナル候補に入れる価値がある。

参考リンク

记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。