黒い画面が怖くなくなる!?WSL×Oh My Poshでターミナルをカスタマイズ

最近はWindows、もっぱらWSLを使用してLinux環境にどっぷりといった感じになってきました。RaspberryPiWSLなどを使用はしていますが、本来は「黒い画面怖い派😫」なのでもう少し見やすくなるといいなあとは思っていました。

そんなとき、Youtubeで海外の方がOh My Poshを使用してコンソールのコマンドプロンプトを見やすくするというようなことをやっていたので、ちょっとやってみたいなと思いました。簡単に言うと、bashなどのコマンドラインをカラー化したりアイコンを表示して見やすくするというものです。

ohmyposh.dev

なかなか楽しい見た目にもなりますし、正直、管理もしやすいなと思いました。また、このOh My PoshbashだけでなくPowerShell上のコンソールにも使用できるという点がいい点かなと感じています(自分は使わないですけど🙇)。 類似したツールとしてはStarshipがあります。Starshipは日本語のドキュメントが充実しているのも良い感じ。今回はあまりドキュメントが充実していなかったOh My PoshWindows(WSL)で使用するという内容で進めています。

これを書いているということは、ハマったということです🙃勘違いに近い感じでしたが。

Oh My Poshってどんなものなの?

私が使ってみて感じたOh My Poshの特徴を簡単にまとめてみました:

  • Gitのブランチ名やPythonの仮想環境が見やすい(これ重宝してます!)
  • 今いるディレクトリのパスが見やすい(長いパスも省略できる)
  • バッテリー残量も表示できる(ノートPCユーザーには嬉しい)
  • コマンドの実行時間も分かる(重い処理の時に便利)
  • テーマが豊富で見た目を簡単に変更できる
  • WindowsでもLinuxでもmacでも使える(環境が変わっても同じ設定で使える😎)

導入手順

以下のように導入を行っていきます。

1. まずはNerdフォントの準備から

最初にハマったのがここです😅 Oh My Poshでかわいいアイコンを表示するには、専用のフォント(Nerdフォント)が必要となります。Nerdフォントというフォントが1つあるということではなく、Nerd対応(アイコン対応)したフォントという意味です。

このフォントを使用するのはWSLbashなどのCLI)となるのでフォントのインストールはWSL側でするのかなと思ったのですが、これが大きな勘違いでした。WSLではフォントをを管理しているのは、ターミナル側を管理している側、つまりWindows側の設定になるのです。そのため、フォントのインストールをWSL内のコンソールで行っても全く反映されないのでした😫

そのため、以下の手順でフォントのインストールを行っていきます。

  1. Nerd Fontsのサイトにアクセス
  2. 好きなフォントをダウンロード
  3. ダウンロードしたフォントをWindowsにインストール
  4. Windows Terminalの設定でフォントを変更

1.Nerd Fontsのサイトにアクセス

Nerd Fontsは以下サイトからダウンロードができます。

www.nerdfonts.com

2. 好きなフォントをダウンロード

フォントは好みになるので見やすいものを各自確認してもらえればと思いますが、私はIBMPlexMonoを使うことにしました。

www.nerdfonts.com

3. ダウンロードしたフォントをWindowsにインストール

ダウンロードし、アーカイブを展開します。

フォントファイルをクリックして確認しておきます。

このままインストールをしてもいいのですが、Windows側のフォントファイルフォルダにコピーしたほうが楽なので以下のように行います。

【田 + R】(ファイル名を指定して実行)を押下して、ダイアログに以下を入力して【OK】ボタンをクリックします。

shell:fonts

フォントのフォルダが表示されるので、アーカイブのフォントファイルをここにコピーします。

4. Windows Terminalの設定でフォントを変更

続いてはWindows Terminalのフォント設定を変更します。ここも外観という項目が2つあって紛らわしいので注意して作業をしてください。

まずは、Windows Terminalのメニューバーの【🔽】をクリックし、プルダウンから【設定】をクリックします。

【設定タブ】が表示されるので、左側のペインにあるプロファイルの内にある【既定値】をクリックします。

【既定値】の表示に切り替わったら、追加の設定内にある【外観】をクリックします。

ここでフォント切り替えの画面になるのでテキスト内にある【フォントフェイス】をクリックして

インストールしたフォントに切り替えます。

これで、Windows Terminalのフォント設定が完了します。

個人的にはフォント設定が深い階層にあるのでわかりにくく、設定内に【外観】が2つあるので、設定画面の構造上、注意が必要です🤔(修正されれるといいですね)

2. Oh My Poshのインストール

WSLOh My Poshをインストールします。ここからの手順はLinuxの手順を参照してください。

ohmyposh.dev

# Oh My Poshインストール
## ~/.local/bin にインストールが行われます。
$ curl -s https://ohmyposh.dev/install.sh | bash -s

3. 設定ファイルの編集

bashを使ってる人は.bashrc.bash_profileに以下を追加します。私は.bash_profileに追加しています。 また、Oh My Posh~/.local/binにインストールされているので、同ファイルでパスの追加も行っています。すでにファイルがある場合には追記となります。

.bash_profile

# Oh My Posh起動設定
export PATH=$PATH:~/.local/bin/
eval "$(oh-my-posh init bash)"

ファイルを保存したら新規にbashを開くか、以下のコマンドを実行して、設定を読み込み直します。

$ source .bash_profile

以下のように、コンソールの見た目が以下のようになれば成功です。

4. テーマを選んで設定

テーマは自作も可能ですが、公式サイトにあるあるテーマファイルを導入して、カスタマイズするのがよいでしょう。

# テーマファイルのダウンロード
##unzipが導入されていなかった場合には以下を実行してください
$ sudo apt update
$ sudo apt install unzip
## ディレクトリ作成
$ mkdir -p ~/.poshthemes
## テーマ一覧の取得
$ wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/themes.zip -O ~/.poshthemes/themes.zip
## 展開
$ unzip ~/.poshthemes/themes.zip -d ~/.poshthemes
## ファイルの権限を付与
$ chmod u+rw ~/.poshthemes/*.json
## テーマ一覧ファイルの削除
$ rm ~/.poshthemes/themes.zip

ここからが一番楽しい部分になりますが、公式サイトからもテーマのプレビューが見られるので、お気に入りを探してみてください!

テーマが決まったら.bash_profileにあった起動部分に`--config```オプションをつけてロードすることで、テーマを有効化できます。

# テーマの反映
eval "$(oh-my-posh init bash --config ~/.poshthemes/<テーマ名>.json)"

# 例えば、jandedobbeleerテーマを使う場合
eval "$(oh-my-posh init bash --config ~/.poshthemes/jandedobbeleer.omp.json)"

.bash_profileのサンプル 使用するテーマの行をコメントアウトしてください

export PATH=$PATH:~/.local/bin/
# eval "$(oh-my-posh init bash)"
# eval "$(oh-my-posh init bash --config ~/.poshthemes/jandedobbeleer.omp.json)"
# eval "$(oh-my-posh init bash --config ~/.poshthemes/atomic.omp.json)"
# eval "$(oh-my-posh init bash --config ~/.poshthemes/paradox.omp.json)"
# eval "$(oh-my-posh init bash --config ~/.poshthemes/powerlevel10k_rainbow.omp.json)"
# eval "$(oh-my-posh init bash --config ~/.poshthemes/agnoster.omp.json)"

おすすめ?テーマ

jandedobbeleer(シンプルで見やすい)

atomic(かっこいい!)

paradox(情報が見やすく配置されてる)

powerlevel10k_rainbow(派手好きな人に)

agnoster(定番だけど使いやすい)

おわりに

「見た目重視かな?」と思っていたOh My Poshですが、使ってみると結構実用的な面も多くて気に入っています。特にGitPythonの仮想環境の状態がひと目で分かるのは、開発作業が捗るのでないかと。

今回はWSLbashを対象にしていましたが、PowerShellでもWSLでも同じように使えるのも魅力的です。Windows環境でクロスプラットフォームな開発をする人には、特におすすめできるツールだと思います😊

トラブったときのチェックポイント

私がハマったポイントをまとめておきます:

  • フォントのインストールや設定はWindows側で行う。
  • アイコンが□や?で表示される → Nerd fontをちゃんと設定できてない可能性大
  • テーマが反映されない → bashの設定ファイル見直したり、ターミナル再起動
  • コマンドが見つからない → Oh My PoshへのPATHが通ってないかも。

参考リンク

ohmyposh.dev

ohmyposh.dev

www.nerdfonts.com

/* -----codeの行番号----- */