つばろぐ

主に C#, .NET, Azure の備忘録です。たまに日記。

PowerShell環境を "Oh My Posh" に移行した

自分の PC で使用している PowerShell環境を "Oh My Posh" に移行したメモです。
元々 Git Bash を使うほうが多いのですが、PowerShell にも慣れておきたくてとりあえず Oh My Posh を導入してみました。

ohmyposh.dev

PowerShell Core のインストール

Windows に最初からインストールされている PowerShell は 5.x なので、PowerShell Core をインストールします。
私は winget を使ってインストールします。

# インストール
winget install --id Microsoft.PowerShell

# 更新
winget upgrade --id Microsoft.PowerShell

インストール後は Windows Terminal を再起動すれば、自動的にプロファイルが登録されます。

learn.microsoft.com

Oh My Posh のインストール

これも winget でインストールします。

winget install JanDeDobbeleer.OhMyPosh -s winget

ohmyposh.dev

フォントのインストール

Oh My Posh の表示を綺麗にするなら、適切なフォントをインストールしたほうが良いそうです。
ターミナルを管理者権限で起動し、フォントインストールのコマンドを実行します。

oh-my-posh font install

    Successfully installed Meslo 🚀

    The following font families are now available for configuration:
      • MesloLGM Nerd Font Mono
      • MesloLGMDZ Nerd Font Propo
      • MesloLGS Nerd Font Mono
      • MesloLGL Nerd Font Mono
      • MesloLGL Nerd Font Propo
      • MesloLGLDZ Nerd Font
      • MesloLGLDZ Nerd Font Propo
      • MesloLGS Nerd Font Propo
      • MesloLGMDZ Nerd Font
      • MesloLGSDZ Nerd Font Propo
      • MesloLGSDZ Nerd Font
      • MesloLGLDZ Nerd Font Mono
      • MesloLGM Nerd Font Propo
      • MesloLGS Nerd Font
      • MesloLGMDZ Nerd Font Mono
      • MesloLGM Nerd Font
      • MesloLGL Nerd Font
      • MesloLGSDZ Nerd Font Mono

私は Meslo をインストールし、MesloLGM Nerd Font というフォントを使用しています。

ohmyposh.dev

Oh My Posh の自動実行

PowerShell Core を起動した際に Oh My Posh が自動実行されるようにするため、プロファイルにコマンドを追加します。

# プロファイルが無い場合のみ
New-Item -Path $PROFILE -Type File -Force

# プロファイルをメモ帳で開く
notepad $PROFILE

プロファイルには以下のコマンドを追記します。

oh-my-posh init pwsh | Invoke-Expression

ohmyposh.dev

Windows Terminal のフォント設定

Windows Terminal で PowerShell Core を起動しても、MesloLGM Nerd Font が指定されてない場合はレイアウトが崩れます。
そのため PowerShell Core のプロファイルでフォントを指定します。

[Windows Terminal] > [設定] > [プロファイル] > [PowerShell] > [外観] > [フォントフェイス] に MesloLGM Nerd Font を指定する。


これで Oh My Posh 環境の構成は一旦完了です。テーマなどは追々好みを探したいと思います。