StarshipでiTerm2のプロンプトをかっこよくしてみる

Gitのstatusや使っている環境のソフトのバージョンを、プロンプトにかっこよく表示したくなりちょっと調べたところ、Rust製のStarshipというツールが良さそうということで設定してみました。

詳しくは、公式マニュアルを参照して欲しいのですが、私のやった設定をまとめておきます。

  1. まず、brew install starshipでstarship自体をインストール
  2. zshを使っているので、.zshrcの最後にeval "$(starship init zsh)"を追加
  3. プリセットから好みのデザインを選んで、インストールコマンドを実行。私は、Gruvbox Rainbowというプリセットを選んで、以下のコマンドを実行しました。 starship preset gruvbox-rainbow -o ~/.config/starship.toml
  4. デフォルトでは、プロンプトに現在時刻を表示するようになっていたのですが、前のコマンドの実行時間を表示したかったので、以下の記述を~/.config/starship.tomlの最後に追加して、
[cmd_duration]
show_milliseconds = false
style = "bg:color_bg1"
format = '[[ ⏰︎ $duration](fg:color_fg0 bg:color_bg1)]($style)'
min_time = 1000

更に、formatの$time$cmd_durationに変更

ここまでで、プロンプトはこんな感じに。 prompt_fail.png

だいたいきれいなんだけど、なんだか表示区切りの三角形が黒とか白とかになってしまっています。調べて調べて結局わかったのは、iTerm2のProfileの設定が原因だということ。Settings > Profiles > Colors > Minimum Contrastを0にしたら解決しました。解決した後のプロンプトは、以下の通り。 prompt_success.png

いい感じです!

最後に、環境を書いておきます。

  • OS: macOS Sonoma 14.5
  • iTerm2: Build 3.5.0
  • starship: 1.19.0
  • zsh: 5.9 (x86_64-apple-darwin23.0)