今回は、PowerShell上でPowerlineを使って見た目をリッチにする方法を紹介する。ターミナルの見た目を整える方法についてはこれまでも何度か取り上げてきたが、Powerlineは特にプログラムのソースコードなどのリソースを管理するツール「Git」を使っている場合に威力を発揮するツールである。Powerlineについては第16回でもUbuntu環境上で使う方法を取り上げているが、これをPowerShellでも使えるようにしてみよう。
Powerlineとは
Powerlineは、コマンドプロンプトやテキストエディタのステータスラインをカラフルにして状態を見やすく整えるソフトウエアだ。以下は、Powerlineの公式サイトで紹介されている、Powerlineを適用した場合のVimのステータスラインの例である。
通常、Vimのステータスラインは白黒で味気ないものだが、Powerlineを使うことでカラフルになり、現在のモードやカーソルのある行数/列数などが非常に見やすくなる。もしGitを使っている場合には、Gitリポジトリ以下のディレクトリにいる際に、現在作業しているブランチや変更の有無などがカラフルに表示されるようになる。
Git for Windowsのインストール
それでは、PowerShellでPowerlineを使えるように設定してみよう。PowerlineはGitと合わせて使用するため、「Git for Windows」が必要になる。まだGit for Windowsをインストールしていない場合は、GitHubの「Release Git for Windows 2.28.0 · git-for-windows/git」から最新版をダウンロード/インストールしよう。
いくつかファイルが並んでいるが、使用しているのが64bit版Windowsであれば「Git-2.28.0-64-bit.exe」を、32bit版であれば「Git-2.28.0-32-bit.exe」をダウンロードすればよい。ダウンロードしたファイルを実行するとインストーラが起動するので、指示に従ってインストールする。インストール時には初期設定用の選択肢が提示されるので、自分の作業環境に合わせて選択していこう。参考までに筆者の設定例を以下に載せておく。
Powerline対応のCascadia Codeのインストール
続いてPowerline対応のフォントをインストールしよう。Powerlineを使用する場合、Powerlineに対応したフォントが無ければ文字が正常に表示されないことがある。以前も紹介したように、Windows Terminalに付属するCascadia CodeおよびCascadia Monoでは、それぞれPowerlineに対応したバージョンの「Cascadia Code PL」および「Cascadia Mono PL」が提供されている。名前の「PL」はPowerLineを指す。これらのフォントは、Cascadia CodeのGitHubリポジトリ「Releases · microsoft/cascadia-code」から入手できる。
本稿執筆時点の最新版は2007.01なので、リポジトリの「Aseets」の項目にある「CascadiaCode-2007.01.zip」をダウンロードする。
zipファイルを展開するとOTF(OpenType Font)、TTF(TrueType Font)、WOFF2(Web Open Font Format 2)の3種類のフォーマットのディレクトリがあり、それぞれに4種類のフォントが格納されている。TTFディレクトリのなかにある4つのフォントのうち、名前に「PL」が付いた2つのファイルがPowerline対応のフォントになる。
フォントをインストールするには、対象のファイルをダブルクリックして、フォントビューワが立ち上がったら左上の「インストール」ボタンをクリックさればよい。
PowerShellへのモジュールの追加
続いて、PowerShellに対して必要なモジュールを追加していく。まず、Gitのステータスをプロンプトに表示する「Posh-Git」と、Posh-Git用のカラーテーマ集の「Oh-My-Posh」をインストールする。これらは、次のようにPoweShellのInstall-Moduleコマンドでインストールできる。
◆「Posh-Git」のインストール
> Install-Module posh-git -Scope CurrentUser
◆「Oh-My-Posh」のインストール
> Install-Module oh-my-posh -Scope CurrentUser
第30回で紹介した方法で最新のPowerShellを導入している場合は、次のコマンドでPSReadLineモジュールもインストールしておこう。
> Install-Module -Name PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck
モジュールがインストールできたら、PowerShellの設定ファイルを編集してPosh-GitおよびOh-My-Poshをインポートする。PowerShellの設定ファイルのパスは $PROFILE 環境変数に格納されているので、次のようにnotepadコマンドを実行すればメモ帳が立ち上がって編集できる。
> notepad $PROFILE
もしまだ設定ファイルが存在しない場合は次のようなダイアログが表示されるので、「はい」ボタンをクリックして新規に作成すればよい。
PowerShellの設定ファイルには、次のように2つのモジュールのインポートと、Oh-My-Poshで用意されているテーマの設定を追記する。
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Agnoster
Oh-My-Poshにはほかにもさまざまなテーマが提供されている。GitHubリポジトリ「JanDeDobbeleer/oh-my-posh: A prompt theming engine for Powershell」の「Thema」の項目を参照して、好きなテーマを適用してみよう。
設定ファイルの保存後、PowerShellを再起動すると設定が反映される。
Windows Terminalのプロファイル設定の変更
最後にWindows Terminal側のプロファイル設定で、Powerline対応フォントを使用するようにfontFaceプロパティの設定を変更しよう。次に示すのは、フォントにCascadia Code PLを使用する場合の設定例である。
以上の一連の設定で、PowerShell上でPowerlineが有効になる。以下に、Powerlineを適用したPowerShellにおいて、Gitリポジトリ内で作業を行なった例を示す。
現在作業しているブランチや、ブランチの差分などがカラーで表示されるので、快適に作業できるようになるはずだ。特にVimやGitなどの作業でステータス表示があれば便利だと感じている人は、Powerlineを試してみるといいだろう。