先日Rust製のプロンプトカスタマイズツールStarshipを自分のPCに導入してみました。
導入すると下記のように可愛いプロンプトにすることができます。

自分はMacを使っているのでこの記事ではMacにインストールする方法をご紹介します。
ちなみにStarshipはMac, Windows, Linux, Android, BSDのOSにインストールでき、ほとんどのシェルに対応しています。
インストール
# brewでインストール
brew install starship
# ~/.zshrcに下記を追加
eval "$(starship init zsh)"
# シェルの再読み込み
source ~/.zshrc
Nerd Fontをインストールし、ターミナルに適用する
このままでも使用できますが、一部のアイコンフォントが文字化けしたままなのでアイコンフォントに対応したフォントを指定する必要があります。
公式サイトではNerd Fontsをオススメしているみたいなので、FONTS DOWNLOADSから好みのフォントをダウンロードしてFont Bookでインストール。ターミナルの設定画面から先ほどインストールしたフォントを指定して完了です。
自分はどうしても今使っているフォントをそのまま使いたかったのですが、そのフォントがアイコンフォントに対応していなかったので後述する”既存フォントとアイコンフォントを合体するツール”を使用して対応しました。Nerd Fontsに気に入ったフォントがない場合は参考にしてみてください。
カスタマイズ
デフォルトのままでも使用できますが、設定ファイルを作成することによって自分好みにカスタマイズすることができます。
設定ファイルの作成
mkdir -p ~/.config && touch ~/.config/starship.toml
設定ファイルの中身
自分の設定ファイルの中身は下記の通りシンプル。
[character]
success_symbol = "[🫐 ](bold green)"
error_symbol = "[🍓 ](bold red)"
vicmd_symbol = "[🍌 ](bold green)"
[package]
style = "bold yellow"
Configuration | Starshipを見るとバッテリー残量やメモリ使用量を表示したり等、設定できる項目がめちゃくちゃ多いので興味のある方は見てみてください。
既存フォントとアイコンフォントを合体する方法(番外編)
自分はターミナルやVS CodeでLotionというプログラミング用フォントを愛用しているのですが、アイコンフォントに対応していなかったためFontForgeとNerd Fontsのfont-patcherを使用してアイコンフォントと合体した新しいフォントを作成することにしました。
FontForgeのインストール
brew install fontforge
Nerd fontsのリポジトリをクローン
任意のディレクトリでNerd fontsのリポジトリをクローンします(8GBくらいあるので結構時間かかります)
# この中にfont-patcherが入っています。
git clone https://github.com/ryanoasis/nerd-fonts.git
font-patcherで既存フォントにパッチを当てる
-c
で全てのフォントを指定、-out
で新しく作成したフォントのアウトプットディレクトリを指定します。
オプションについてはGitHubのFull optionsをご覧ください。
# 書き方
fontforge -script [font-patcherのパス] [フォントのパス] -c -out [アウトプットディレクトリ]
# 例
fontforge -script ~/nerd-fonts/font-patcher /Users/simmon/Downloads/Lotion-RegularWithLigatures.ttf -c -out ~/font-tmp
アウトプットディレクトリに作成された新しいフォントをターミナルで適用して完了です。