Powerlineフォントとは

これまで何回かにわたり、Microsoftが新たに公開した「Cascadia Code」というフォントを紹介した。なぜ何度も取り上げたかと言うと、これからデフォルトのフォントとして広いシーンで使われていく可能性が高いからだ。Cascadia Codeをめぐる状況を整理すると、次のような感じになる。

  • Microsoftが開発を進めているフォント。オープンソースソフトウエアとして開発されており、GitHubで公開されている。現在ユーザーからのフィードバックを得て活発に修正やグリフの追加が行われている。今後も開発が継続される可能性が高く、Windows以外のプラットフォームでも広く使われる可能性がある
  • Windows Terminalにおけるデフォルトのフォントとなる可能性が高い。Visual Studio CodeやVisual Studioでも採用される可能性がある
  • 最近開発者の間で流行しつつある合字に対応している。合字はWindowsアプリケーションのみならず、さまざまなアプリケーションで使用できる
  • Powerline(パワーライン)に対応したグリフも含んでおり、Linux向けのシェルやエディタでも使用できる。パッチを当てる必要なく最初からPowerline対応のグリフが含まれているので、Powerlineを使用したいユーザーや開発者に好まれていく可能性がある


要するに、Cascadia Codeは”今注目しておきたいフォント”ということだ。そして先日、Cascadia CodeにPowerlineのグリフを追加したバージョンも登場した。公式版に最初からPowerline対応のグリフが含まれているというのも、注目のポイントだろう。

Powerlineというのは、インタラクティブシェルのプロンプトやエディタのステータスラインを「何となくかっこよくする」機能、だと思ってもらえればよい。この機能を提供した最初のソフトウエアだと思われるものの、名称がPowerlineであるため、このように呼ばれている。CUIなわけだが、それに対応したフォントを使うことで、”何となくかっこいい感じ”を実現している。

この機能は説明が難しく、スクリーンショットを見てもらうのがわかりやすいだろう。次のスクリーンショットは「vim-airline」というVimのステータスラインをPowerline風にする機能を使った場合のもので、通常のステータスラインよりもだいぶ派手な装飾になっていることを確認してもらえると思う。

vim-airlineのサンプルスクリーンショット

Powerlineを実現するのに必要になるのは、要するにフォントだ。Powerlineのクールな出力を実現するには、それを実現するためのグリフを含んだフォントが必要になる。これまでは既存のフォントにPowerline用のグリフを追加したフォントを使っていたのだが、Cascadia Codeには「Cascadia Code PL」と「Cascadia Code Mono PL」という、最初からPowerline用のグリフが追加されたフォントが用意された。このフォントの存在は、Powerline機能が使われるシーンを増やす可能性がある。

これはWindows Terminalで使えることも意味しているし、WSLで動作するLinuxでPowerline機能が使いやすくなることも意味している。今回はこの機能について解説しよう。

Cascadia Code PL/ Mono PLを使ってみよう

まず、「Releases · microsoft/cascadia-code」からフォントをダウンロード/インストールする。Windows 10であれば、設定アプリケーションからフォントを選択し、「ドラッグ&ドロップしてインストールします」というエリアにダンロードしてきたフォントファイルを放り込めばよい。インストールが完了すると、次のように使用可能なフォントにCascadia Codeがシリーズが追加される。

インストールされたCascadia Code関連フォント

試しに、Windows Terminalの設定を変更し、フォントとして「Cascadia Code」を使うように変更してみる。

Windows TerminalでCacasia Codeを使うように設定

この状態でPowerlineを使うように設定されたエディタを起動してみると、次のようになる。

Powerlineに対応するフォントを使っていないので、文字化けして表示されている

矢印の先にあるフォントが”豆腐”になっているが、ここは本来Powerlineで使われるグリフが指定されており、実際にはもう少しクールな表示になるはずの部分だ。Powerlineに対応していないフォントを使うと、こんな感じで文字化けしてしまう。

それでは、ここでWindows Terminalのフォントを「Cascadia Code PL」に設定してみよう。すると、次のように先程文字化けしていた部分が「◀」のような表示になり、無事、Powerlineなステータスラインが表示されるようになったことを確認できる。

Windows Terminalのフォントを「Cascadia Code PL」に設定したことで、Powerlineなステータスラインがちゃんと表示されるようになった

合字についても試してみよう。Cascadia Code PLは合字に対応したフォントなので、エディタで合字になる組み合わせで文字を入力すると、次のように表示が自動的に合字に入れ替わっていく。キータイプと同時にヌルっと合字に入れ替わる様子は、慣れてくると気持ちの良いものだ。

Cascadia Code PLで合字を表示させた場合

ここでWindows Terminalのフォントを「Cascadia Code Mono PL」に変更すると、次のようになる。

Cascadia Code Mono PLを指定すると今度は合字が消えて元の文字に戻ることを確認できる

Cascadia Code Mono PLはPowerlineグリフは含んでいるものの、合字は含んでいない。そのため、合字として表示されていた部分が、全て元に戻っていることを確認できる。

LinuxでPowerlineに対応したエディタやインタラクティブシェルを使うことを考えると、「Cascadia Code PL」か「Cascadia Code Mono PL」か、どちらかを選択しておけばよいと言える。最近の流行りに乗っておくならCascadia Code PL、合字が気持ち悪くて従来のフォントのほうがよいというなら「Cascadia Code Mono PL」ということになると思う。

「こだわりのフォント」になり得る可能性

ターミナルアプリケーションやエディタアプリケーションはLinuxサーバの管理者やプログラマーにとって仕事に直結する重要なアプリケーションだ。当然、そこで使われるフォントやPowerline、またはそのテーマなどは、ユーザーがこだわりを持って設定するところとなる。

Cascadia Codeシリーズはフォントとして結構いい線を行っていると筆者は思う。特に、Powerlineに対応しているというのが大きい。さらに、さまざまな環境や文字コードの下で問題なく動作するように改善も進められている。2020年はCascadia Codeが広く普及していく可能性があり、今後の展開に注目しておきたい。