Windows TerminalとPowerline

【連載】

1からマスター! Windows Terminal入門

【第16回】Windows TerminalとPowerline

[2020/04/23 08:00]佐々木宣文 ブックマーク ブックマーク

Powerlineとは

本連載では、Windows TerminalとCascadia Codeフォントの関係について紹介してきた。Windows Terminalを利用するのであれば、Cascadia Codeフォントを利用する価値はあると思う。

そのCascadia Codeプロジェクトから「Cascadia Code」「Cascadia Code Mono」「Cascadia Code PL」「Cascadia Code Mono PL」の4つのフォントがリリースされている。Cascadia CodeとCascadia Code Monoは合字が対応または非対応であるフォントであることを前回説明したが、プロジェクトではほかにも名前に「PL」がついたフォントを公開している。

PLとは「Powerline」の略で、つまりPowerline機能に対応していることを意味している。ではこのPowerlineとは何なのかと言うと、シェルのプロンプトやエディタのステータスラインをリッチに表示するソフトウエアのことを指している。通常、プロンプトやエディタのステータスラインはシンプルな表示となっている。それは見方を変えれば、古臭い感じがしてしまうとも言える。そんな地味な見た目を変えるのが”Powerline“だ。

Powerlineは、「必須のツール」とは言えないが見た目がよくなり、少しCUIらしくなくなるのが特徴だ。例えば、この機能を利用すると、次のようにプロンプトやステータスラインが表示されるようになる。

Powerline(Powerline公式ページのスクリーンショット抜粋)

この機能を利用するにはPowerlineのインストール/設定はもちろんのこと、フォントも対応している必要がある。対応していないと、綺麗に描画されないのだ。Cascadia Codeは対応するフォントを公開することでPowerlineの導入をしやすくしている。

Cascadia CodeがPowerline用に提供しているのが、「Cascadia Code PL」と「Cascadia Code Mono PL」だ。名前からわかると思うがCascadia Code PLがPowerlineと合字に対応したフォントで、Cascadia Code Mono PLがPowerlineに対応しており、合字が非対応のフォントとなっている。Powerlineも合字も使いたければCascadia Code PLを、Powerlineは使いたいが合字を使いたくなければCascadia Code Mono PLをインストールすればよい。

フォント名 ファイル名 説明 備考
Cascadia Code Mono CascadiaMono.ttf 合字、Powerlineともに非対応 公式ベージからダウンロード
Cascadia Code Cascadia.ttf 合字に対応、Powerlineは非対応 Windows Terminalに標準同梱
Cascadia Code Mono PL CascadiaMonoPL.ttf Powerlineに対応、合字は非対応 公式ページからダウンロード
Cascadia Code PL CascadiaPL.ttf 合字、Powerlineともに対応 公式ページからダウンロード

Powerlineも合字も近年登場したばかりのもので、どちらもプログラミングを意識した技術と言える。Cascadia Codeはこの2つの機能に対応しており、Windows TerminalでCascadia Codeを設定すれば、少しリッチでプログラミングしやすいターミナルアプリケーション環境を手に入れることができるというわけだ。

今回はこのPowerlineに対応したCascadia Codeを使って、Windows TerminalでPowerlineを利用する方法を紹介したいと思う。

Powerline対応のCascadia Codeをインストール

実際にWindows TerminalでPowerlineを体験できるよう、Powerlineに対応しているCascadia Codeフォントをインストールしてみよう。先ほど説明したように、合字/Powerlineともに対応したCascadia Code PLと、合字は非対応だがPowerlineに対応したCascadia Code Mono PLの2つのフォントがあるので、合字機能の利用の有無でインストールするフォントを決めていただければと思う。

どちらの場合もCascadia Codeの公式ページよりTTFファイルを取得してインストールするだけの簡単な作業だ。ここでは例としてCascadia Code PLをインストールする。「CascadiaPL.ttf」を取得したら、次のようにダブルクリックでフォントビューワを表示させてインストールするだけだ。

フォントビューワでCascadia Code PLをインストール

インストールが完了したら、次のように設定する。Powerlineは今のところサポートしているのがVimやUNIX環境向けのシェルであるため、ここではWSL環境のUbuntuのフォント設定にダウンロードしたCascadia Code PLを設定している。

UbuntuのプロファイルにCascadia Code PLを設定

Windows TerminalでPLを使ってみよう

Powerline向けのフォントをインストールしただけではPowerlineを体験することはできない。Powerlineを対象の環境にインストールする必要がある。ここではCascadia Code PLを設定したUbuntuにPowerlineをインストールし、標準シェルであるBash上でPowerlineを動作させてみる。

Windows TerminalのUbuntu環境で「sudo apt install Powerline」と実行すれば、Powerlineのインストール作業が自動で行われる。

WSL環境上のUbuntuでPowerlineをインストール

BashでPowerlineを利用する場合、Bashの設定ファイル編集してもかまわないし、インストールしたPowerlineに提供されている自動設定用のシェルスクリプトを利用してもかまわない。ここでは、単純に簡単に体験できるよう提供されているシェルスクリプトを利用してみる。

「/usr/share/Powerline/bindings/」以下にPowerlineを利用できるシェル名ごとのディレクトリが用意されており、Bashであれば/usr/share/Powerline/bindings/bash/以下にPowerline.shというシェルスクリプトファイルがある。このシェルスクリプトを次のようにsourceコマンドの引数に渡して実行すればPowerlineが使えるようになる。

Bash上でPowerlineが動作

Powerlineに対応したCascadia Code PLを設定しているためPowerlineが綺麗に見えるが、Powerlineに対応していないフォントを使っているとこうはならない。

例えば、Cascadia Code PLのフォント設定を無効に設定すると、標準のConsolasフォントに代わって次のようにPowerlineに表示されているフォント部分が文字化けしてしまう。

Poewrlineに対応していないフォントだと文字化けが発生する

Powerlineを使うために毎回シェルスクリプトを利用するのが面倒という場合は、先ほど実行した「source /usr/share/Powerline/bindings/bash/Powerline.sh」という一行をBashの設定ファイル~/.bashrcに追加すればいい。次回よりUbuntuを立ち上げると自動でPowerlineが設定されて利用できるようになる。

その他のPowerlineフォント

最後にCascadia Code以外のPowerlineに対応したフォントをいくつか簡単に紹介するが、実は前回紹介した合字に対応した「Fira Code」「Iosevka」「Hasklig」は全てPowerlineにも対応している。これらのフォントをWindows Terminalに設定してPowerlineを利用してみてもよいだろう。

Windows Terminal + Bash on Ubuntu + Powerline + Fira Code

Windows Terminal + Bash on Ubuntu + Powerline + Iosevka

Windows Terminal + Bash on Ubuntu + Powerline + Hasklig

参考資料

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
対話システムをつくろう! Python超入門
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
PowerShell Core入門
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る