Oh My Posh
について、当初はPowerShellモジュールにて実装され提供されていましたが、今現在はPowerShellモジュールでの提供は終了し、バイナリでの提供(oh-my-posh.exe)に切り替わりました。
過去、下記リンクのようなPowerShellモジュール版のインストール記事と、PowerShellモジュールからバイナリ提供版への移行について投稿しましたが、本記事ではバイナリ提供版を一からインストールする場合について説明します。
Oh My Poshを利用してPowerShellプロンプトをいい感じにする
Oh My PoshをPowerShellモジュール版からバイナリインストール版に移行してみる(Windows)
今回やること
Windows端末のWinodws Terminal
上でPowerShellプロンプト
をOh My Post
をつかってをいい感じにする。
ドキュメント
Fonts | Oh My Posh
Windows | Oh My Posh
Nerdフォントのインストール と Windows Terminalの設定
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
Oh My Posh
でプロンプトをいい感じにするのには、Nerd
フォントと呼ばれるフォントを利用しています。
(プロンプトにいい感じのアイコンだったりを表示するのに利用されています)
ドキュメントでは Meslo LGM NF がおすすめされているようですが、他のNerdフォントでも互換性があり問題はなさそうです。
お好みのNerdフォントをインストールした上で、Windows Terminal
のフォント設定を行います。
※本記事では、HackGenNerdというNerdフォントをインストールしています。
フォントインストール後、最近のWindows Terminal
ではjsonファイルを直接いじらなくてもGUI上からフォント設定ができるので、Windows Terminal
の設定からフォントを設定します。
下記画像では、既定値 ー> 外観 から インストールしたHackGenNerdを選択しています。
Oh My Posh をインストールする。
Windows環境へのインストールでは、winget
、scoop
、manual
。
3種類のインストール方法が提供されています。
本記事ではwinget
を利用してインストールします。
winget install JanDeDobbeleer.OhMyPosh -s winget
上記コマンドでインストール後は、環境変数PATHを読み込むためにWindows Terminal
を一旦終了して起動しなおしてください。
PowerShell起動時にOh My Poshを利用するように設定する
PowerShellの起動プロファイルにOh My Posh
を利用するよう設定を行います。
# notepadでPowershellの起動プロファイルを開く
notepad $PROFILE
# 上記コマンドでエラーとなる場合は、起動プロファイルを作成してからnotepadで開く
New-Item -Path $PROFILE -Type File -Force
notepad $PROFILE
notepadで開いた起動プロファイルに下記の一文を追加します
oh-my-posh init pwsh | Invoke-Expression
上記の一文を追加後に下記コマンドで起動プロファイルを読み込み直します。
. $PROFILE
プロンプトがなんかいい感じになったかと思います。
インストールされているテーマを確認する
oh-my-posh init pwsh | Invoke-Expression
上記コマンドで、デフォルトのテーマを読み込む利用するようにしましたが。
Oh My Posh
ではjson設定ファイルをカスタマイズすることでプロンプトを様々な表示方法にカスタマズする事ができます。
テーマについても、インストールした時点で何種類も端末にはインストールされており。
テーマは下記環境変数にインストールされています。
# テーマがインストールされているパスの表示
$env:POSH_THEMES_PATH
# テーマがインストールされているディレクトリを開く
ii $env:POSH_THEMES_PATH
多種多様なテーマがインストールされている事を確認できます。
提供されるデフォルトテーマがどのようなGUI表示となるか確認したい場合は、下記のコマンドを実行するとプロンプト上でインストールされているテーマが確認できます。
Get-PoshThemes
コマンドを実行するといい感じのテーマがずらずらと表示されます。
なお下記ページにもプロンプト表示のサンプルが用意されているので、こちらから確認する事もできます。
現在設定されているテーマ以外に気に入ったテーマがあった場合は、切り替えるためにテーマ名が必要となるので控えておきます。
テーマを指定する
テーマを指定してOh My Posh
を起動するためには、起動プロファイルに指定した一文を変更します。
今回は1_shell
という名前のテーマを設定してみます。
テーマ名は1_shell
という名前で、先程テーマが格納されていたファイルを確認すると
1_shell_omp.json
というファイルが確認できます。
# 起動プロファイルの一文を下記に変更する
oh-my-posh init pwsh --config $env:POSH_THEMES_PATH/1_shell.omp.json | Invoke-Expression
変更後は下記コマンドで起動プロファイルを読み込み直します。
. $PROFILE
1_shell
テーマでプロンプト表示がいい感じになりました。
以上で、Oh My Posh
のテーマを切り替えるようになりました。
テーマをカスタマイズする。
Oh My Posh
のテーマを用意されているテーマだけではなく自分好みにカスタマイズする事もできます。
イチからjson設定ファイルを書くのは厳しいので、何かしらのテーマを元ネタに自分の理想系に書き換えるのがいいかと思います。
上記、ドキュメント Configurationに用意されている要素が記載されており、この記載とjsonファイルを見比べて、どのような部分を設定しているか確認していくのがいいでしょう。
Oh My Posh
では各種情報を表示するセグメントが用意されており。
AWS
セグメントでは現在読み込まれているプロファイル設定等をプロンプトに表示するようにできたり、他にもgit
セグメントやpython
セグメントなど色々と便利なセグメントが用意されています。
総評
OH My Posh
はPosh
というPowerShell
の短縮形がソフトウェア名にある通り、元々はPowerShell
プロンプトをいい感じにしてくれるソフトウェアでしたが。
今現在はPowerShell
以外にもcmd(Clink)
、zsh
、bash
、fish
、nu
といたシェルプロンプトもいい感じにもできるようになっており。
名前以上に幅広く対応しているようなソフトになります。(名が体を表してない気が多分にありますが)