ターミナル環境をGhosstyとStarshipにしてみた
はじめに
今までzshの設定はほぼいじらず、Warpを使っていました。
The intelligent terminal | Warp
今回ターミナルをGhosstyに、プロンプトをStarshipに変更したので紹介します。
GhosstyとStartshipとは
Ghossty
Zig言語で書かれていて、Mac版はSwiftUIとAppKitが使われているターミナルエディターです。
特徴としては主に下記の3つがあるそうです。
- 機能が豊富
- ターミナル機能には、例えばKitty グラフィック プロトコル、ライト/ダーク モード通知、ハイパーリンクなどをサポートさています
- アプリケーション機能は、例えばネイティブ タブ、分割、macOS のドロップダウン ターミナル、システムのダーク/ライト モードでのテーマ切り替えなどをサポートさています
- 高速処理
- 最速のターミナル エミュレーターと同じクラスになることを目指しているとのことで、さまざまなベンチマークによって変わりますが、遅いことはないとのことです。
- クロスプラットフォーム
- 先ほどを記載しましたが、Zig言語で書かれていて、Mac版ではUI周りはSwiftUIとAppKitを使用しているようです。またLinux版もあるのですが、Linux向けにGTKにするのもほぼ共通でいけるとのことです。(すみません、あまりここは理解できていません。)
Starship
Rust言語製で、高速かつカスタマイズ性に特化したプロンプトです。
こちらも主に3つの特徴があるようです。
- Rust製
- Rustの最高レベルの速度と安全性を用いることで、高速かつ信頼性が高い
- 互換性
- さまざまなOSやターミナルに対応している
- 柔軟なカスタマイズ
- ミニマルにも多機能にも好きなようにプロンプトを設定することができる
なぜWarpをやめてGhosstyとStarhipにするのか
GhosstyとStartshipにしたのは、
深い理由はあまりなく、流行っているからという理由が大きいです。またthemeが気に入っていたり、カスタムがしやすかったというのもあります。 (zshファイルを色々いじるのは、面倒だったのであまりやりたくありませんでした。。。)
またWarpから変えようとしたのは、
日本語が未対応でWarp上に全角を打っている間は文字が表示されないというのが、かなりのストレスだったからです。
ただWarpにはAIコマンド入力、コマンド入力補完、ブックマーク、シェアなどなど豊富な機能があり、使いこなせる人にとってはかなり便利なアプリだと思います。
自分はこれらの機能を使いこなせなかった側になるのですが、特にコマンド入力補完機能やコマンド履歴はとても便利だったと感じています。
またGhosttyは command + f で出てくる検索機能が、まだ未対応なので注意する必要がありそうです。
導入方法
難しくないので、ここでの導入方法は省略します。下記を参考にしてください。
Ghosstyはこちらからダウンロードしてください。brew caskからでもダウンロードできるかと思います。自分はbrew cask派です。
Starshipはこちらを参考にインストールしてください。
自分の設定

現在このようなカスタムにしています。
それぞれの設定を紹介します。
Ghossty
// ターミナルのテーマ
theme = xcodedarkhc
// タイトルバーに表示されているアイコンを非表示
macos-titlebar-proxy-icon = hidden
// キーボード入力中はマウスを非表示
mouse-hide-while-typing = true
// マウスのスクロールスピードを2倍
mouse-scroll-multiplier = 2
// カーソルの透明度の設定
cursor-opacity = 0.7
// カーソルのスタイルをblockに。他にもbar, underline, block_hollowがあります
cursor-style = block
// カーソルを点滅させる
cursor-style-blink = false
// カーソルのスタイルが自動でbarになってしまわないようにする設定
shell-integration-features = no-cursor
Starship
Starshipは tomlで記載します。
# シェルのプロンプトの間に空行を挿入する
add_newline = true
# ディクショナリー部分の設定
[directory]
# 表示の文字色をblueにする
style = "fg:blue"
# 100文字までで切り捨て
truncation_length = 100
# 現在のディレクトリがリポジトリの場合、ルートのみではなく全パス表示する
truncate_to_repo = false
# Gitブランチ部分の設定
[git_branch]
# 文字色を緑で太文字にする
style = "bold green"
# 表示フォーマット
format = "[$symbol$branch(:$remote_branch)]($style) "
# git statusの表示設定
[git_status]
# 表示の文字色をblueにする
style = "fg:blue"
# 現在の git リポジトリにおける追加・削除された行数を表示設定
[git_metrics]
# 非表示にするかどうか
disabled = false
# 追加行数のスタイルをblueのboldにする
added_style = 'bold blue'
# 表示フォーマット
format = '\([+$added]($added_style)/[-$deleted]($deleted_style)\)'
# 変更された項目についてのみステータスを表示
only_nonzero_diffs = true
# これ以下は言語モジュールの設定。
# 現在の言語バージョンが表示されるがすべて無効にする。
[c]
disabled = true
[golang]
disabled = true
[python]
disabled = true
[rust]
disabled = true
[dart]
disabled = true
[ruby]
disabled = true
[package]
disabled = true
最後に
GhosstyとStarshipの紹介と、現在の設定について紹介しました。
どちらもかなり気に入っているのですが、ただやはりGhosttyに検索機能がないのが辛いポイントです。今後追加されることを願います。
もし興味がある方がいましたら是非導入してみてください。