Windows

Windows TerminalでPowerlineの環境を整える

前回Windows Terminalをインストールしました。そのままの状態だと毎日触るのは辛い環境だったのでフォントとテーマを導入して改善しました。
詳細はWindows Terminalでターミナル環境を整えるをご参照ください。

今回はPowerlineを使える環境を構築し、更に今風なターミナル環境を構築したいと思います。

事前作業

いくつかの事前作業が必要になります。
特にターミナル環境でGit管理下のディレクトリに入ったときに、プロンプト部分にブランチやファイル状態がプロンプトに表示されるとわかりやすいのでGitもインストールします。

PowerShell 7をインストールする

まず最初に、今回PowerShellにいくつかのモジュールをインストールします。
Windows10を使っていてPowerShell関連のアップデートを行っていない場合はPowerShell 5系がインストールされております。
最新はPowerShell 7なので、PowerShell 7をインストールします。
インストール方法はPowerShell7をインストールするをご参照ください。

なお標準のPowerShellでもインストール可能だと思いますが、以下の手順で一部ことなる部分があります。

Gitをインストールする

Git For Windowsをインストールします。
自分の環境では既にインストール済みだったのでキャプチャとかはないのですが、適当にインストールした記憶があります。

Powerlineを使うためのモジュールをインストールする

いよいよターミナル環境を整えていきます。
PowerShellはOS標準のものではなく、新しくインストールしたPowerShell 7を使います。
ターミナル自体に必須ではないのですが、ターミナルをより便利にするためにモジュールをインストールします。
特にターミナルでGit管理のディレクトリに入ったときにブランチやファイルの状態がターミナル上で確認できると非常に便利なのでGitを使うことが多い場合は入れておくと良いと思います。


Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

 

さらにPSReadlineのインストールが必要なようですがPowerShell7からは標準でバンドルされているみたいなので別途インストールは不要です。

ポイント

PowerShell6以下を使う場合は別途インストールが必要になります。

続いてPowerShellの起動時にモジュールを読み込むように起動時に読み込まれるファイル(プロファイルファイル)に記載します。
早い話がbash_profileのようなものだと思います。
以下のコマンドを実行するとエディタが起動します。


notepad $PROFILE

 

ポイント

プロファイルファイルは初期状態では存在しないので、以下のコマンド実行時に新しく作成しますかと聞かれる場合があります。
この場合は、はいを選択してファイルを作成してください。

コマンドを実行するとエディタが起動するので以下の内容を入力して保存します。


Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt Paradox

 

Set-Themeだと以下のようなエラーが発生する場合があります。

The term 'Set-Theme' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct
and try again.

2021年の3月くらいにテーマ変更するコマンドがリネームされているとのことで、Set-Themeでうまくいかない場合はSet-PoshPromptと変更する必要があります。

これで一旦PowerShell7を起動してみます。

かなりいい感じになりました。
1行目はホームディレクトリの時です。
二行目はGit管理しているディレクトリの時です。
これがWindowsのターミナルなのかという感じです。モダンな感じがしますよね。
テーマのDraculaもいい感じです。
ですが残念なことにプロンプト部分が文字化けしてます。
先程インストールしたoh-my-poshのParadoxテーマを指定しているのですが、ここで指定されているPowerlineの文字が文字化けしているものと思われます。
これを回避するためにはPowerlineに対応したフォントをインストールする必要があります。

Powerlineに対応したフォントをインストールする

続いてPowerlineに対応したフォントをインストールします。
自分が愛用しているRictyは標準ではPowerlineに対応しておらず、また有志の方が作成されたPowerlineに対応したRictyもあるのですが、今回の環境では文字化けが解消しませんでした。
このあたりは、落ち着いたらもう少し調査してみたいと思います。
今回は白源 (はくげん/HackGen)を使うことにしました。

フォントをインストールする

GitHubのリリースページからファイルをダウンロードします。
オリジナルのRictyもそうですがフォントは自分でビルドしなければならないこともあるので、ダウンロードできるライセンスなのはありがたいです。
ダウンロードしたら適当に展開します。
色々フォントの種類があり作者様がQiitaで解説してくれています。
フォントファミリーの種類
今回はHackGen Consoleを使うことにします。

展開したファイルの中から以下の2ファイルをインストールします。
・HackGenConsole-Bold-forPowerline.ttf
・HackGenConsole-Regular-forPowerline.ttf

ポイント

フォントのインストールはフォントを右クリックして表示されるメニューからインストールをクリックすることでインストールできます。

Windows Terminalにフォントの設定をする

最後にWindows Terminalの設定を行います。
またWindows Terminalの設定ファイルを開きます。
設定ファイルは%USERPROFILE%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\profiles.jsonです。
もしかしたら8wekyb3d8bbweという部分は環境によって異なるかもしれません。
profiles.defaults.fontFaceHackGen Console for Powerlineを指定します。

抜粋ですが以下のような感じになります。


{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    // 省略
    "profiles":
    {
        "defaults":
        {
            "fontFace":  "HackGen Console for Powerline",
            "colorScheme" : "Dracula"
        }
        // 省略
    }
}

設定変更後のターミナル

これでWindows TerminalからPowerShell7を開いてみると・・・。

文字化けが解消されて、すごいいい感じになりました。
フォントも見やすいですね。
疑っている人もいるかもしれませんが、これWindowsのターミナルですよ。
自分は何もしていないのですが、それでも少し感動してしまいました。

まとめ

Windowsはターミナル環境が弱いと言われていましたが、それも今は昔・・・とまでは言えませんが、それでも数年前とは比べ物にならないくらい良くなってきているのではないでしょうか。
cmd.exeからgitのコマンドを操作するのは厳しいものがあったのですが、今回導入したWindows Terminalからなら実行できそうですね。
2020年4月中旬現在、Windows Terminalはプレビュー版ということですが正式リリースが待ち遠しいです。
2020年5月に予定されているMay 2020 Updateに含まれるのでしょうか。そうなればWSL2と同時に楽しみですね。

参考リンク

How to make a pretty prompt in Windows Terminal with Powerline, Nerd Fonts, Cascadia Code, WSL, and oh-my-posh

【文字幅 半角3:全角5 も追加】Ricty を神フォントだと崇める僕が、フリーライセンスのプログラミングフォント「白源」を作った話

[PowerShell] PSReadline 2.0が正式リリースされました

PowerShell7にPowerlineを設定時に起きたエラーの対応備忘録

-Windows
-,

© 2024 ビー鉄のブログ Powered by AFFINGER5