Windows Terminal + PowerShell 環境に Oh My Posh を導入する

Linux でいうとこの Oh My Zsh のようなものがないかなと探していたところ、
Oh My Posh というものがあったので導入してみる。

作業は Windows Terminal で PowerShell を開き、
基本的に Windows - Installation - Get started - Getting Started - Oh My Posh を参考に進めていく。

環境

  • Windows 10 Home
  • PowerShell v7
  • Windows Terminal

Oh My Posh のインストール

色々な方法があるけど、
Microsoft Store にあるので、そこからインストールしてみる。

Windows Terminal を起動している場合、
インストールが完了したら Windows Terminal を再起動(閉じて再度開くだけ)する。

確認

oh-my-posh コマンドが使えるようになっている。

$ oh-my-posh version

フォントのインストール

Oh My Posh では Nerd Font を使うらしい。
公式では Nerd Font ライブラリの中にある Meslo LGM NF フォントを推奨しているらしいので、
そのフォントを含んだ Meslo フォントを Nerd Font ライブラリからインストールする。

$ oh-my-posh font install meslo

Successfully installed Meslo 🚀

  The following font families are now available for configuration:

    • MesloLGL Nerd Font
    • MesloLGL Nerd Font Mono
    • MesloLGL Nerd Font Propo
    • MesloLGLDZ Nerd Font
    • MesloLGLDZ Nerd Font Mono
    • MesloLGLDZ Nerd Font Propo
    • MesloLGM Nerd Font
    • MesloLGM Nerd Font Mono
    • MesloLGM Nerd Font Propo
    • MesloLGMDZ Nerd Font
    • MesloLGMDZ Nerd Font Mono
    • MesloLGMDZ Nerd Font Propo
    • MesloLGS Nerd Font
    • MesloLGS Nerd Font Mono
    • MesloLGS Nerd Font Propo
    • MesloLGSDZ Nerd Font
    • MesloLGSDZ Nerd Font Mono
    • MesloLGSDZ Nerd Font Propo

Windows Terminal のコンフィグ設定

Windows Terminal で PowerShell を起動し、
「CTRL + SHIFT + ,(カンマ)」で settings.json を開いて、
推奨された MesloLGS Nerd Font を指定する。

{
	"profiles":
	{
		"defaults":
		{
			"font":
			{
				"face": "MesloLGM Nerd Font"
			}
		}
	}
}

プロンプトの変更

PowerShell のプロファイルを編集する

$ oh-my-posh get shell
$ notepad $PROFILE

# 上記プロファイルが見つからない場合、下記コマンドでファイルを生成する
$ New-Item -Path $PROFILE -Type File -Force

    Directory: C:\Users\xxxxx\OneDrive\ドキュメント\PowerShell

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2025/xx/xx    00:00              0 Microsoft.PowerShell_profile.ps1

# プロファイルが生成されたら再度開く
$ notepad $PROFILE

Microsoft.PowerShell_profile.ps1

最終行に以下を追加。

oh-my-posh init pwsh | Invoke-Expression

プロファイルの適用

$ . $PROFILE