Windows10でプログラミングをはじめる（２）　～Windows Terminalなどの導入～

#はじめに
前回の記事からもう1年くらい経っていますが、気が向いたので書くことにしました。

#目標
すぐ下の画像は、前回の記事の最後にも載せたUbuntuのターミナルですが、かなり見辛いです。また、色のコントラストが強くて目が疲れる人もいるかと思います。
<img width="500" alt="デフォルトターミナル" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397727/90553d43-f011-abc9-ae7c-bdb517022d75.png">

今回の記事ではこれを、下の画像のようなターミナル(Windows Terminal)に変更する手順について述べます。
<img width="500" alt="改良後" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397727/1c1bb4d7-43a1-919c-8c32-02e0cf110261.png">

#手順
やることは以下の4つになります。

- Windows Terminalのインストールと設定
- フォントの変更
- 色の変更
- プロンプト("User name@Host name:~$"の箇所)の変更

# Windows Terminalのインストールと設定
Microsoft StoreからWindows Terminalをインストールしてください。(こちらの[リンク先](https://www.microsoft.com/ja-jp/p/windows-terminal/9n0dx20hk701?activetab=pivot:overviewtab)をたどっても良いです。)

Windows Terminalを起動すると、まず以下のような画面(PowerShell)が出ると思います。画像のようにプルダウンからUbuntuを選択すると、Ubuntuが開きます。ただ、このままだと毎回起動時にPowerShellが立ち上がってしまいます。
なので、設定を開いて「既定のプロファイル」をUbuntuに変更し、「保存」しましょう。
<img width="600" alt="Windowsターミナル" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397727/56c1cd5e-0176-a5ac-39da-842bdb99a188.png">
これでWindows Terminalの最低限の設定は終わりです。

# フォントや色の変更
さて、これでWindows Terminalを起動すればUbuntuが開くようになりました。開いてみると、次のような感じになっているかと思います。
<img width="500" alt="Windowsターミナル Ubuntu" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397727/efdd6d65-c448-cac3-0b9d-6b5ab32906d6.png">
色については、Ubuntu標準のターミナルよりも見やすくなっています。これで満足だという方はお帰りください。ここからは（他の人の趣向によって形成された）僕の独断と偏見でこのターミナルをさらに改善していきます。

気になる点は以下の3つくらいでしょうか？

- フォントがクソ。見辛い。
- 色は良くなったが、もう少し目にやさしい色にしたい。
- プロンプト("User name@Host name:~$"の部分)が長い。邪魔。

下2つについては次の節で話すこととして、まずはフォントを変更しましょう。

### プログラミング用フォント
プログラミングにおいては、コードの可読性向上などのために適切なフォントを導入すべきです。プログラミング用フォントとしてはRictyやHackGenが人気ですが、Rictyは少し導入が大変ですし、l(エル)と1(イチ)が見分けにくいので、この記事ではHackGenの導入について説明します。

### HackGenフォントのインストール
以下のURLを参考に、フォント(zipファイル)のダウンロードを行ってください。
[Ricty を神フォントだと崇める僕が、フリーライセンスのプログラミングフォント「白源」を作った話 - Qiita](https://qiita.com/tawara_/items/374f3ca0a386fab8b305)

zipファイルを解凍した後、[スタート]>[設定]>[個人用設定]>[フォント]を開いてください。zipファイルの中の.ttfファイルを以下のようにドラッグ&ドロップするとフォントのインストールが完了します。
<img width="600" alt="フォントインストール" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397727/ec1a3c46-247d-991a-53a8-5aa1472bde50.png">

### フォントの適用
では、いよいよフォントをWindows Terminalに反映させましょう。
Windows Terminalの「設定」を開き、画像のように[既定値]>[外観]>[フォント フェイス]を押してください。フォント一覧が出るので、中からHackGenを探して選択し、右下の「保存」を押してください。
<img width="600" alt="フォント変更" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397727/1915fbe6-aa12-1ca3-8ce8-265d95a371e9.png">

これでOKです。
比較のため、変更後の画面を出しておきます。前のフォントより見やすくなっていると思います。
<img width="500" alt="フォント変更後" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397727/293db101-fa14-dfa6-a986-e5de4ce64e10.png">

# 色の変更
この節では、Windows Terminalの背景・文字色を変えます。

Windows Terminalにはデフォルトで配色が9種類ほど用意されていて、その中の色で良いなら設定から簡単に変更することができます。

ただ、9種類しかないので他の配色が良い場合は、ネットから拾ってくる必要があります。9種類のどれかで良い人は「配色の追加」を飛ばして「配色の設定」を読んでください。

### 配色の追加
Windows Terminalの配色は以下のサイトにあります。
[Windows Terminal Themes](https://windowsterminalthemes.dev/)

いろいろな配色があるので気に入ったものを選んで、「Get theme」を押してください。クリップボードに配色を表す文字列がコピーされます。

コピーできたら、Windows Terminalの設定から「JSONファイルを開く」を選んでください。どのアプリで開くかを聞かれますが、適当にメモ帳とか選べばいいです。

下の画像のように変な文字が並んでいますが、下の方にスクロールして、"schemes"という設定項目を見つけてください。カーソルを赤矢印のところに合わせて、先ほどクリップボードにコピーされた文字(配色)を貼り付けてください。**このとき、クリップボードにコピーされた文字は波括弧{}で閉じられていますが、}の後ろにコンマ(,)を追加してください。**
<img width="450" alt="JSONファイル" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397727/141ed407-7a5d-d4ec-997e-8beee3fedf4f.png">
JSONファイルを保存すれば、配色の追加は完了です。

### 配色の設定
配色の設定は、色の変更と同様、Window Terminalの[設定]>[既定値]>[外観]からできます。
配色の追加がうまくいっていれば、[配色]から追加したものが選べるようになっているはずです。

変更後のターミナルはこんな感じ（iceberg-darkの場合）。
<img width="500" alt="色変更後" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397727/e041811c-cc06-53b7-d728-a65eae6dd25a.png">

# プロンプトの変更
これでかなり見た目がよくなったと思います。でもプロンプトが長いです。プロンプトのユーザ名やホスト名はリモート通信の際には便利ですが、ローカルで作業する人には関係ありません。だから、次はこれを消してしまいます。

いろいろなやり方がありますが、個人的にはzsh+preztoを使用するのが一番楽な気がします。

ちょっと疲れたので、zshとpreztoのインストールについては以下のリンクを参照してください。。。(そのうち書き直すつもり)
[zsh+prezto環境構築](https://www.murakan.info/2020/04/02/905/zshprezto%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89/)

preztoがインスト―ルできれば、ホームディレクトリに.zpreztorcという設定ファイルができます。
この中にプロンプトを設定する ```zstyle ':prezto:module:prompt' theme 'sorin'``` という行があるので、'sorin'の部分を好きなテーマに変更してください。```pure```がシンプルで使いやすいかと思います。
他のテーマについては [Customizing Your Prezto Prompt](https://mikebuss.com/2014/04/07/customizing-prezto/) など参照してください。

# おわりに
これで使いやすい Linux 環境が構築できたかと思います。説明が冗長・不足な部分などあるかとは思いますが、読者の一助となれば幸いです。
参考文献に大きく依った内容なので、そちらもご確認ください。

# 参考文献
ターミナルの整理：[お前らのターミナルはダサい](https://qiita.com/kinchiki/items/57e9391128d07819c321)
zsh, prezto：[zsh+prezto環境構築]
(https://www.murakan.info/2020/04/02/905/zshprezto%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89/)
Windows Terminal公式ドキュメント：[Windows ターミナルとは](https://docs.microsoft.com/ja-jp/windows/terminal/)
Rictyのインストール説明：[ubuntu linux に プログラミング用フォント Ricty をインストールする](https://qiita.com/2celeb/items/865dd294ed499ed5f15c)
白源：[Ricty を神フォントだと崇める僕が、フリーライセンスのプログラミングフォント「白源」を作った話](https://qiita.com/tawara_/items/374f3ca0a386fab8b305)
Windows Terminalの配色：[Windows Terminal Themes](https://windowsterminalthemes.dev/)
Icebergインストール(vim移植, mac)：[ICEBERG](http://cocopon.github.io/iceberg.vim/)