StarshipをNerd Fontをインストールしないで運用する

2023/12/30

Starshipとは

StarshipはコマンドプロンプトをカスタマイズできるRust製のツール。導入も簡単で設定もわかりやすいので2年前くらいにoh-my-zshから乗り換えた。

初期設定の段階でNerd Fontが必要な記号やアイコンが使われているため、以下のようにGitブランチやNode.jsのバージョンの横にあるアイコンが表示されない。

画像

公式ドキュメントでも、Nerd Fontがインストールされていてターミナルで有効になっていることを前提としている。

Nerd Fontとは

開発者向けのロゴや記号のようなアイコン型のフォントを追加(パッチを当てた)したフォント群のことを指す(という理解をしている)。

repoはこちらで、サイト上からでもダウンロードできる一覧を確認できる。

brewでインストールする場合は以下のように実行する。xxxは通常フォントの名前を指定する。

brew install --cask font-xxx-nerd-font

ちなみにbrewからインストールできるフォントの一覧はここで確認できる。数が多いので検索推奨。

なぜNerd Fontを用意したくないのか

上記のようにインストールしてターミナルのフォントにNerd Fontを設定すれば初期設定のままStarshipを使えるが、個人的にこれが面倒だと思う場面に遭遇した。

きっかけはMonaspaceというフォントが発表された時で、すぐに試してみようとインストールしてみたらNerd Fontのことを忘れていたのでターミナルが化けてしまったこと。発表当時はNerd Fontの対応もまだされていなかった(今はMonaspiceという名前で追加されている)。

VSCodeなどのエディタにだけ新しいフォントを設定して、ターミナルだけ以前から使用しているNerd Fontにする、ということも可能だったが、アイコンや記号のためだけにフォントが違う文字を行き来するのはつらい。macのターミナルやiTerm2を使っている場合にそれらにも設定をしないといけないのが面倒というのもある。

2年前くらいにStarshipを導入した時もフォント周りで慣れない設定をしたため時間がかかってしまったという経験もあり、新しいフォントを試すたびにこれを繰り返したくなかったので可能ならポータビリティのために通常フォントのままで運用したいと考えるようになった。

Nerd Fontを使うメリットであるアイコンや記号による視認性の向上やオシャレといったところも、最初にテンションは上がったものの、ここまで趣味や仕事でプログラミングするなかで自分にはそこまで必要なかったというのも理由。

設定する

Nerd FontをインストールしなくてもStarshipを運用する方法は簡単で、フォントを必要とするような記号やアイコンを表示しないようにすればいいだけである。

ありがたいことにno-nerd-fontplain-text-symbolsというプリセットがあるため、これらを利用すればほぼほぼすぐに脱Nerd Fontできる。ちなみにno-nerd-fontは将来的にデフォルトのプリセットになるらしい。

一部分的な導入の場合でも、化けてしまうアイコンが設定されている箇所を化けない文字や記号に置き換えればいい。

自分はもともとtokyo-nightというプリセットをもとにカスタマイズした設定を使用していたため、これをベースに脱NerdFontすることにした。

最終的にはこんな感じになった。.tomlこちら

画像

by me a coffee