Oh My Posh
はPosh
というPowerShell
の短縮形が命名にはいっている事からわかるように。
元々はPowerShell
のコマンドプロンプトをいいかんじにするPowerShell
モジュールでありましたが、今現在は、PowerShell
以外のシェルについてもいい感じにするようサポートされています。
本記事ではbash
プロンプトをいい感じにしてみます。
ドキュメント
Installation Linux
Change your prompt | Oh My Posh
今回インストールする環境
今回はWSL2
上のUbuntu-22.04
にOh My Posh
をインストールしてWindows Terminal
からいい感じにプロンプトが表示されるようにしてみます。
インストール
Installationのドキュメントを参照すると、homebrewを使った方法と、マニュアルでのインストール方法の記載があります。
今回は、マニュアルでの方法でインストールしていきます。
sudo wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/posh-linux-amd64 -O /usr/local/bin/oh-my-posh
sudo chmod +x /usr/local/bin/oh-my-posh
mkdir ~/.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/*.omp.*
rm ~/.poshthemes/themes.zip
Nerdフォントのインストール と Windows Terminalの設定
今回はWindows
のWSL2
上のUbuntu 22.04
をWindows Terminal
から利用するケースとなります。
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
Oh My Posh
でプロンプトをいい感じにするのには、Nerdフォント
と呼ばれるフォントを利用しています。
(プロンプトにいい感じのアイコンだったりを表示するのに利用されています)
ドキュメントでは Meslo LGM NF がおすすめされているようですが、他のNerdフォント
でも互換性があり問題はなさそうです。
お好みのNerdフォント
をインストールした上で、Windows Terminal
のフォント設定を行います。
最近のWindows Terminal
ではjsonファイルを直接いじらなくてもフォント設定ができるので、GUI上からフォント設定した図
下記の例ではHackGenNerdというNerdフォント
をインストールし、既定値 ー> 外観 から HackGenNerdを選択しています。
bashでOh My Poshを利用するように設定する
.bashrc
に下記を追加して起動時に Oh My Posh
を読み込むように設定します。(
eval "$(oh-my-posh init bash)"
.bashrc
を更新したら、下記でプロファイルをリロードします。
exec bash
bash
プロンプトがいい感じに更新されました。
文字化けする場合
本記事の環境では、Windows Terminal
でNerdフォント
を利用する設定になっていない場合は下記のように文字化けします。
このような表示になった場合は、Nerdフォント
のインストールと、Windows TerminalでNerdフォント
を利用するように設定してください。
## テーマを変更してみる
今回、手順の中でマニュアルでテーマを下記パスにダウンロードしています。
~/.poshthemes
上記ページに記載がありますが、bash
の場合は下記コマンドでテーマを切り替える事ができます。
eval "$(oh-my-posh init bash --config ~/.poshthemes/1_shell.omp.json)"
コマンドを実行すると、テーマが切り替わった事を確認できます。
恒久的にテーマを切り替えたい場合は、.bashrc
に追加した一行を上記コマンドに変更すればOKです。
総評
Oh My Posh
の記事を書いていたと思ったら、いつの間にか。
- PowerSHellへのインストール記事
- cmd(Clink)へのインストール記事
- Bashへのインストール記事(本記事)
と各種シェルへのインストール記事をかいている事に気が付きます。
自分は元々PowerShell
で便利に利用していましたが、別のシェルでも普通に使えるようになり。
現在はWindows , Linux , Mac上で様々なシェルをいい感じにしてくれるソフトウェアになっています。
こうなってくると、Posh
(PowerShellの省略形)という名称がついていますが。
様々な環境の様々なシェルを横断的に自分好みのテーマでいい感じにできる、いい感じのソフトウェアになっています。
弱点としては名前から、各種シェルに対応しているといった事が解りづらい点があるかと思いますが。