Ghostty入門|HashiCorp創業者が作った次世代ターミナルの設定ガイド

Mac

ターミナルを毎日使うエンジニアにとって、見た目と使い勝手は生産性に直結しますよね。

2024年末にリリースされたGhosttyは、HashiCorpの創業者Mitchell Hashimotoが5年以上かけて開発したターミナルエミュレータです。僕は約1年ほど使っていますが、iTerm2から乗り換えて正解だったと感じています。Terraform、Vagrant、Vaultを作った人が「自分が本当に使いたいターミナル」として開発しただけあって、パフォーマンスと設定の柔軟性が突き抜けています。

この記事では、Ghosttyの基本設定から、Catppuccinテーマを使った「かっこかわいい」見た目のカスタマイズ、Quick Terminal、tmux・Starship連携まで解説していきます。

最終的にはこんな感じの環境が作れます。

Ghostty + tmux + Starship + Neovimの完成イメージ

左側でNeovimを開いて、右側にneofetchとシステムモニターを表示しています。tmuxのステータスバーとStarshipのプロンプトもCatppuccinテーマで統一されているので、全体的に統一感のある見た目になっていますね。

Ghosttyとは

Ghosttyは、ネイティブのハードウェアアクセラレーションを活用した高速ターミナルです。主な特徴はこちら。

  • ネイティブUI: macOS版はSwift/Objective-Cで書かれたネイティブアプリ
  • GPU描画: Metal(macOS)やOpenGL/Vulkan(Linux)を使った高速レンダリング
  • 合字対応: プログラミングフォントの合字をネイティブサポート
  • 背景画像・シェーダー: カスタム背景やシェーダーエフェクト
  • Quick Terminal: グローバルホットキーで呼び出せるドロップダウンターミナル
  • ゼロ設定: デフォルトでもすぐ使える合理的な初期設定

インストール

Homebrew

brew install --cask ghostty

公式サイトからダウンロード

ghostty.orgからdmgファイルをダウンロードしてインストールできます。

基本設定

設定ファイルは ~/.config/ghostty/config に置きます。ディレクトリがなければ作成しましょう。

mkdir -p ~/.config/ghostty
touch ~/.config/ghostty/config

設定はシンプルな key = value 形式です。コメントは # で始めます。

フォント設定

プログラミングに適したNerd Fontを設定します。個人的にはJetBrains Mono Nerd Fontがおすすめです。

# Nerd Fontsをインストール
brew install --cask font-jetbrains-mono-nerd-font
# ~/.config/ghostty/config
font-family = "JetBrainsMonoNL Nerd Font"
font-family = "Hiragino Kaku Gothic ProN"
font-size = 16

font-familyを複数指定すると、フォールバックとして使われます。日本語表示のためにヒラギノを追加しておくと安心ですね。

合字の制御

プログラミングフォントの合字(!=になるなど)が好みでない場合は無効化できます。

font-feature = -calt, -liga, -dlig
  • -calt: 文脈依存の代替文字を無効化
  • -liga: 標準合字を無効化
  • -dlig: 任意合字を無効化

Catppuccinテーマの設定

Catppuccinは、パステルカラーベースのカラースキームです。目に優しく、長時間の作業でも疲れにくいんですよね。

Ghosttyには全Catppuccinフレーバーが組み込みテーマとして用意されているので、手動でダウンロードする必要はありません。

フレーバー特徴
Latteライトテーマ
Frappeやや明るめのダーク
Macchiato中間のダーク
Mocha最もダークなテーマ

テーマの適用

# ~/.config/ghostty/config
theme = catppuccin-frappe

カーソルカラーのカスタマイズ

デフォルトのカーソル色を変更して、さらに目立たせることもできます。

cursor-style = block
cursor-color = #9adee8

cursor-styleblockbarunderline から選択できます。

背景画像の設定

Ghosttyは背景画像をサポートしています。お気に入りの画像を設定すると、ターミナルの雰囲気がガラッと変わりますよ。

background-image = /Users/your-username/Pictures/terminal-wallpaper.jpg
background-image-opacity = 0.2

background-image-opacityは0.0〜1.0の範囲で指定します。0.1〜0.3くらいが文字の可読性を保ちながら雰囲気を出せるのでおすすめです。

対応フォーマット

  • JPEG
  • PNG
  • GIF(アニメーション非対応)
  • BMP
  • WebP

Quick Terminal

Quick Terminalは、グローバルホットキーで画面上部からスライドダウンするターミナルです。iTerm2のHotkey Windowに相当する機能ですね。

quick-terminal-position = "top"
quick-terminal-animation-duration = 0.15

グローバルホットキーの設定

keybind = global:ctrl+cmd+u=toggle_visibility

global:プレフィックスをつけると、他のアプリがフォーカスしていても呼び出せます。

Quick Terminalの表示位置

quick-terminal-positionで表示位置を変更できます。

  • top: 画面上部(デフォルト)
  • bottom: 画面下部
  • left: 画面左側
  • right: 画面右側
  • center: 画面中央

カスタムシェーダー

Ghosttyはカスタムシェーダーをサポートしていて、カーソルにエフェクトを追加したり、画面全体にフィルターをかけたりできます。

custom-shader = /Users/your-username/.config/ghostty/shaders/cursor_blaze.glsl

シェーダーファイルはGLSL形式です。カーソル周りにグロー効果を追加するサンプルなどがGitHubで公開されています。

macOS固有の設定

フルスクリーン

macOSのネイティブフルスクリーンを使うか、非ネイティブ(別Spaceに移動しない)を使うか選べます。

fullscreen = true
macos-non-native-fullscreen = true

macos-non-native-fullscreen = trueにすると、フルスクリーン時にスペースを移動せず、現在のデスクトップで全画面になります。

タイトルバーの非表示

画面をスッキリさせたい場合はタイトルバーを非表示にできます。

macos-titlebar-style = hidden

オプションは nativehiddentransparent の3つです。

Option キーを Alt として使う

ターミナルでMeta キーとしてOptionを使いたい場合はこちら。

macos-option-as-alt = true

tmuxやVimでOptionをMetaキーとして使う場合は必須の設定です。

tmux連携

tmuxを使っている場合、Ghosttyと組み合わせることでさらに強力な環境が作れます。

Catppuccin for tmux

tmuxにもCatppuccinテーマを適用しましょう。

# ~/.config/tmux/tmux.conf
set -g @plugin 'catppuccin/tmux#v2.1.3'
set -g @catppuccin_flavor 'mocha'

おすすめのtmux設定

# プレフィックスキーをCtrl+sに変更(Ctrl+bより押しやすい)
set-option -g prefix C-s
unbind-key C-b
bind-key C-s send-prefix

# ステータスバーを上部に表示
set-option -g status-position top

# マウスを有効化
set-option -g mouse on

# True colorサポート
set-option -g default-terminal "tmux-256color"
set-option -ga terminal-overrides ",*256col*:Tc"

tmuxプラグイン

tmux plugin managerを使うと便利なプラグインを簡単にインストールできます。

# おすすめプラグイン
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'  # セッション復元
set -g @plugin 'tmux-plugins/tmux-continuum'  # 自動保存
set -g @plugin 'MunifTanjim/tmux-mode-indicator'  # モード表示

Starship連携

Starshipは、クロスプラットフォームのシェルプロンプトです。Rustで書かれていて非常に高速なんですよね。

Starshipのインストール

brew install starship

# .zshrcに追加
echo 'eval "$(starship init zsh)"' >> ~/.zshrc

Catppuccin for Starship

StarshipにもCatppuccinテーマを適用して統一感を出しましょう。

# ~/.config/starship.toml
palette = "catppuccin_mocha"

[palettes.catppuccin_mocha]
rosewater = "#f5e0dc"
flamingo = "#f2cdcd"
pink = "#f5c2e7"
mauve = "#cba6f7"
red = "#f38ba8"
maroon = "#eba0ac"
peach = "#fab387"
yellow = "#f9e2af"
green = "#a6e3a1"
teal = "#94e2d5"
sky = "#89dceb"
sapphire = "#74c7ec"
blue = "#89b4fa"
lavender = "#b4befe"
text = "#cdd6f4"
subtext1 = "#bac2de"
subtext0 = "#a6adc8"
overlay2 = "#9399b2"
overlay1 = "#7f849c"
overlay0 = "#6c7086"
surface2 = "#585b70"
surface1 = "#45475a"
surface0 = "#313244"
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"

プロンプトのカスタマイズ

format = """
$os\
$directory\
$git_branch\
$git_status\
$nodejs\
$rust\
$golang\
$python\
$cmd_duration\
$line_break\
$character"""

[os]
disabled = false
format = "[$symbol]($style) "
style = "fg:text"

[os.symbols]
Macos = ""

[directory]
format = "[$path]($style)[$read_only]($read_only_style) "
style = "fg:blue"
truncation_length = 3

[git_branch]
format = "[$symbol$branch(:$remote_branch)]($style) "
symbol = " "
style = "fg:mauve"

[git_status]
format = '([$all_status$ahead_behind]($style) )'
style = "fg:peach"

[character]
success_symbol = "[∙](fg:red)[∙](fg:sky)[∙](fg:green)"
error_symbol = "[∙](fg:red)[∙](fg:red)[∙](fg:red)"

これで、Ghostty + tmux + Starship がすべてCatppuccinテーマで統一された環境が完成します。

設定例(フル)

ここまでの設定をまとめた完全な設定例です。

# ~/.config/ghostty/config

# テーマ
theme = catppuccin-frappe

# フォント
font-family = "JetBrainsMonoNL Nerd Font"
font-family = "Hiragino Kaku Gothic ProN"
font-feature = -calt, -liga, -dlig
font-size = 16

# カーソル
cursor-style = block
cursor-color = #9adee8

# 背景
background-image = /path/to/your/wallpaper.jpg
background-image-opacity = 0.2

# macOS設定
fullscreen = true
macos-non-native-fullscreen = true
macos-titlebar-style = hidden
macos-option-as-alt = true

# Quick Terminal
quick-terminal-position = "top"
quick-terminal-animation-duration = 0.15

# キーバインド
keybind = global:ctrl+cmd+u=toggle_visibility

# シェーダー(オプション)
# custom-shader = /path/to/your/shader.glsl

iTerm2からの移行

iTerm2から移行する場合の主な違いはこちらです。

機能iTerm2Ghostty
設定UIGUIで設定テキストファイル
プロファイル複数プロファイル対応シンプルな単一設定
Hotkey WindowありQuick Terminal
分割ネイティブ対応tmuxとの連携推奨
背景画像ありあり
シェーダーなしあり

iTerm2の分割機能をよく使う場合は、tmuxとの併用がおすすめです。Ghostty自体の分割機能もありますが、tmuxの方が柔軟性が高いですね。

パフォーマンス比較

Mitchell Hashimoto自身がベンチマークを公開していて、vtebench等のベンチマークでiTerm2やAlacrittyより高速という結果が出ています。

実際に1年使ってみた体感としても、iTerm2よりサクサク動きます。特にtmuxでペイン分割しているときの表示速度が明らかに早いんですよね。大量のログ出力やスクロール時も引っかかりがなくて快適です。

注意点:メモリ使用量

ただ、稀にメモリを多く使用してしまうことがあります。長時間使っていると数GBまで膨らんでいることがあり、そのときはGhosttyを再起動しています。僕のマシンのメモリが24GBで足りていない可能性もありますが、メモリ使用量は気にしておいたほうがいいかもしれません。

トラブルシューティング

フォントが表示されない

Nerd Fontが正しくインストールされているか確認しましょう。

# インストール済みのNerd Fontを確認
fc-list | grep -i nerd

Quick Terminalが動かない

グローバルホットキーを使うには、システム環境設定でアクセシビリティの許可が必要です。

システム設定 → プライバシーとセキュリティ → アクセシビリティ でGhosttyを許可してください。

背景画像が表示されない

パスが正しいか確認しましょう。~は展開されないので、フルパスで指定する必要があります。

# ❌ 動かない
background-image = ~/Pictures/wallpaper.jpg

# ✅ 動く
background-image = /Users/username/Pictures/wallpaper.jpg

ターミナル環境をさらに快適にするアイテム

ソフトウェア面の設定が完了したら、ハードウェアにも投資してみると作業効率がさらに上がります。

高品質キーボード

ターミナルでの作業はキーボード入力が中心なので、打鍵感の良いキーボードを使うとモチベーションが上がります。特にHHKBは静電容量無接点方式で、長時間のタイピングでも疲れにくいんですよね。コンパクトなサイズでデスクスペースも節約できます。

HHKB Professional HYBRID Type-S 日本語配列 Amazonで見る

4Kモニター

ターミナルで複数ペインを開く場合、解像度の高いモニターがあると格段に作業しやすくなります。特にtmuxで分割表示する際、4K解像度なら文字がつぶれずに読みやすいです。Dell U2723QEはIPS Blackパネル採用で、コントラストが高くテキストがくっきり表示されます。

Dell U2723QE-A 27インチ 4K USB-Cハブモニター Amazonで見る

まとめ

Ghosttyは、HashiCorpの創業者が5年以上かけて作った「本気のターミナル」です。

  • ネイティブパフォーマンス: Metal/Vulkanを使った高速描画
  • 設定の柔軟性: テキストベースで管理しやすい
  • Quick Terminal: グローバルホットキーでどこからでも呼び出し
  • 背景画像・シェーダー: ビジュアルのカスタマイズが自由自在

Catppuccinテーマを使えば、Ghostty + tmux + Starship を統一感のある「かっこかわいい」環境に仕上げられます。

iTerm2からの移行も難しくないですし、一度設定してしまえばdotfilesとしてGitで管理できるのも大きなメリットですね。

ターミナル環境を見直すタイミングなら、Ghosttyを試してみる価値はあると思います。

Thanks for reading!
GhosttyターミナルMacCatppuccinStarshiptmux