Windows のコンソールを使いやすくしよう

Linux, Windows, WSL, コマンド

誰しも、いい環境で仕事したいですよね。

Windows Subsystem for Linux

とは?

Windows 10には Windows Subsystem for Linux(以下、 WSL) という機能が提供されています。
これを使うと Windows 上で Linux のプログラムを動かす事が出来ます。Windows で開発や運用やってると、とても便利で手放せないツールです。
これは元々 Bash on Windows と呼ばれていたものですが、名前が誤解を招きやすい物だったからなのか、いつの間にか WSL に名称変更されていました。

最近は着実に進化しています

ベータ版のころは ping も使えなかったレベルだったのですが、最近では X ウィンドウ のプログラムも動きますし、 Windows Store からUbuntu だけでなく DebianOpenSuse を選択できるようになったりと、着実に進化をしています。

Windows のコンソールは見づらい

新機能盛りだくさんの WSL なのですが、コンソールは相変わらずコマンドプロンプトと同じ物を使っています。

win_console.PNG

このコンソール、言いたいことは沢山あるんですが特にひどいのが以下2点だと思っています。

  • カラースキーマが見づらい
  • デフォルトフォントが見づらい

今回この2つをなんとかしたので、その記録として記事にしてみました。

カラースキーマが見づらい問題をなんとか

青が暗すぎる

Windows コンソールのカラースキーマは20年以上昔、ブラウン管を使ったディスプレイの時代に定義された物をずーっと使っていました。
そのため、現代の液晶ディスプレイで使うと青色が読ませる気ゼロな表示になってしまいます。

Fall Creators Update でのカラースキーマの改良

流石にマズいと Microsoft も思ったのか、去年の Fall Creators Update で新しいカラースキーマが発表されました。(画像はMicrosoft公式ブログより)

CampbellEchoOutput-600x131.png

最近の UNIX 系コンソールに近い色ですね。Fall Creatos Update な Windows10 がクリーンインストールされた環境であれば、デフォルトでこの色になるらしいです。
しかし、それ以前のバージョンからアップデートした場合には手動でカラースキーマを変更する必要があります。

コンソールカラーのテーマを変更しよう

Microsoft から ColorTool というものが提供されています。
これを使うと、各カラースキーマのプレビューや、レジストリへの登録を自動で行ってくれます。
ちなみに、READMEに

I recommend the excellent iTerm2-Color-Schemes repo, which has TONS of schemes to choose from, and previews.(MS提供以外のスキーマを使うのであれば、iTerm2 のカラースキーマが非常にレベルが高いものが沢山提供されておりプレビューも出来るので、お薦めです)

と書かれていました。この乗っかれる物には乗っかる姿勢、好きです。


手順について説明します。
まず、ColorTool をこちら からダウンロードして解答します。
作成されたフォルダーに、 colortool.exe というものがあるので、コマンドプロンプト or Powershellから実行します。

新しいデフォルトテーマ campbelle に変更する場合は以下のコマンドを実行します。

このとき、オプションとして

  • -d(default: デフォルトとしてレジストリに登録)
  • -b(both: カレントウィンドウに反映して、デフォルトとしてレジストリに登録)
    のいずれかを付けないと、そのウィンドウ上のテーマが変わるだけで保存がされないので注意してください。

これを行うだけで、非常に見やすくなるのではと思います。
人によってはこれでも十分?
…いや、そんなに見やすくはないですね。やっぱりフォントもなんとかしなければ

win-console-campbell.PNG

デフォルトフォントが見づらいのをなんとか

どんなフォントがいいのか

コンソールで使用される英字フォントはWindows10のアップデートで改善されたのですが、日本語フォントは未だに MS ゴシック です。(クリーンインストールしたら新しくなってるのかもしれないですが)
さらに、Windows に最初から入っているフォントセットは基本的にコンソールに向いていません。新規にフォントを探してきてインストールすることになります。
フォント選びの観点は沢山あると思うのですが、コンソールのフォントとしては

  • 等幅であること
  • I(大文字アイ)と l(小文字エル) と 1(いち)、 o(小文字オー) と O(大文字オー) と 0(ゼロ) のような似た文字の区別が付く
  • 高解像度のディスプレイで見ても崩れていない

などになると思います。
プログラミング向け(は自ずとコンソール向けになります)かつ日本語対応のフォントはいくつか有名な物がありますが、最近の主流は以下2つだと思います。

Ricty とは?

ricty.PNG

Ricty は8年前に東京理科大の遊佐さんが発表して以来、とても根強い人気を誇るプログラミング向けフォントです。
英語圏のプログラミング向けフォントとして定番の Inconsolataと日本語フォント Migu 1M のミックスフォントになります。
游ゴシックやメイリオと比べると横に平べったい印象を受けますが、それ故とても可読性が高いです。平べったいのも数時間使っていると慣れます。

源ノ角ゴシック とは?

souce_han_code_jp.png

源ノ角ゴシック Code は2年前に Adobe が公開したフォントで、英語圏のプログラミング用で作られたSource Code Pro に、Adobe が作成したオープンソースの日韓中文字のフォントである源ノ角ゴシック を幅が揃うように合成したものです。
元々印刷やプレゼンテーション用に作られた源ノ角ゴシックがベースと言うことで、可読性だけでなく見た目の洗練さもあります。

Ricty を Windows で使おう

試しに、Ricty を設定してみましょう。

Ricty はライセンスの問題によって、フォント自体は配布していません。
オリジナルとなるフォントを集めて、スクリプトを使って合成することでRictyを生成します。
基本的に公式サイトの手順通りに行えばフォントが生成されるのですが、Windows環境だと ricty_generator.sh を使うと文字の幅が異常に広いフォントが出来上がります。

ricty_windows.png
↑ 広がりすぎているコンピューターの世界

Windows で使うときは os2version_reviser.sh をダウンロードしてきて、生成された ttf 全てに対して

を実行して文字幅を修正する必要があります。

ricty_windows_fixed.png
↑適度に広がるコンピューターの世界

あとは WSL のウィンドウを起動して、メニューから「規定値」→「フォント」→「フォント」で Ricty を選択すればかなり綺麗になります。

win-console-campbell-ricty.png

いい感じですね。仕事が捗ります。

おわりに

ちなみに、Mac を使えばデフォルトでこれ以上に綺麗なコンソールが使えますし、各種コマンドの実行速度も WSL と比べものにならないくらい速いので、特に理由が無ければMacを使うことをお薦めします。