ターミナル環境をGhosstyとStarshipにしてみた

はじめに

今までzshの設定はほぼいじらず、Warpを使っていました。

The intelligent terminal | Warp

今回ターミナルをGhosstyに、プロンプトをStarshipに変更したので紹介します。

Ghostty

Starship

GhosstyとStartshipとは

Ghossty

Zig言語で書かれていて、Mac版はSwiftUIとAppKitが使われているターミナルエディターです。

特徴としては主に下記の3つがあるそうです。

Starship

Rust言語製で、高速かつカスタマイズ性に特化したプロンプトです。

こちらも主に3つの特徴があるようです。

なぜ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に検索機能がないのが辛いポイントです。今後追加されることを願います。

もし興味がある方がいましたら是非導入してみてください。