15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oh My Poshを利用してPowerShellプロンプトをいい感じにする(バイナリインストール・Windows Terminal)

Last updated at Posted at 2022-11-06

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を選択しています。

image.png

Oh My Posh をインストールする。

Windows Set up your terminal

Windows環境へのインストールでは、wingetscoopmanual
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

プロンプトがなんかいい感じになったかと思います。

image.png

インストールされているテーマを確認する

oh-my-posh init pwsh | Invoke-Expression

上記コマンドで、デフォルトのテーマを読み込む利用するようにしましたが。
Oh My Poshではjson設定ファイルをカスタマイズすることでプロンプトを様々な表示方法にカスタマズする事ができます。

テーマについても、インストールした時点で何種類も端末にはインストールされており。
テーマは下記環境変数にインストールされています。

# テーマがインストールされているパスの表示
$env:POSH_THEMES_PATH

# テーマがインストールされているディレクトリを開く
ii $env:POSH_THEMES_PATH

多種多様なテーマがインストールされている事を確認できます。

image.png

提供されるデフォルトテーマがどのようなGUI表示となるか確認したい場合は、下記のコマンドを実行するとプロンプト上でインストールされているテーマが確認できます。

Get-PoshThemes

コマンドを実行するといい感じのテーマがずらずらと表示されます。
なお下記ページにもプロンプト表示のサンプルが用意されているので、こちらから確認する事もできます。

Temes | Oh My Posh

現在設定されているテーマ以外に気に入ったテーマがあった場合は、切り替えるためにテーマ名が必要となるので控えておきます。

image.png

テーマを指定する

テーマを指定してOh My Poshを起動するためには、起動プロファイルに指定した一文を変更します。

今回は1_shellという名前のテーマを設定してみます。

テーマ名は1_shellという名前で、先程テーマが格納されていたファイルを確認すると
1_shell_omp.jsonというファイルが確認できます。

image.png

# 起動プロファイルの一文を下記に変更する
oh-my-posh init pwsh --config $env:POSH_THEMES_PATH/1_shell.omp.json | Invoke-Expression

変更後は下記コマンドで起動プロファイルを読み込み直します。

. $PROFILE

1_shellテーマでプロンプト表示がいい感じになりました。

image.png

以上で、Oh My Poshのテーマを切り替えるようになりました。

テーマをカスタマイズする。

Oh My Poshのテーマを用意されているテーマだけではなく自分好みにカスタマイズする事もできます。

イチからjson設定ファイルを書くのは厳しいので、何かしらのテーマを元ネタに自分の理想系に書き換えるのがいいかと思います。

configuration | Oh My Posh

上記、ドキュメント Configurationに用意されている要素が記載されており、この記載とjsonファイルを見比べて、どのような部分を設定しているか確認していくのがいいでしょう。

Oh My Poshでは各種情報を表示するセグメントが用意されており。

AWSセグメントでは現在読み込まれているプロファイル設定等をプロンプトに表示するようにできたり、他にもgitセグメントやpythonセグメントなど色々と便利なセグメントが用意されています。

総評

OH My PoshPoshというPowerShellの短縮形がソフトウェア名にある通り、元々はPowerShellプロンプトをいい感じにしてくれるソフトウェアでしたが。

今現在はPowerShell以外にもcmd(Clink)zshbashfishnuといたシェルプロンプトもいい感じにもできるようになっており。

名前以上に幅広く対応しているようなソフトになります。(名が体を表してない気が多分にありますが)

15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?