Windows TerminalとWSL2のメモ

## chocolaty を入れる

まず、[Chocolaty](https://chocolatey.org/install)を入れてこよう。話はそれからだ。 

手元にどんなパッケージが入ってるか確認した上で、パッケージを最新化しておく。管理者権限でゴリゴリ。

```powershell

choco list --local-only
choco upgrade all 
```

大事なところから放り込む

```powershell
choco install firacode cascadiafonts git curl
```

[FiraCode](https://github.com/tonsky/FiraCode)は大事ですよ。Microsoftさんの推しフォントは[Cascadia Code](https://github.com/microsoft/cascadia-code)なので、こちらも。

## Windows Terminal の導入

昨今までcmder派だったんですが、Microsoftさんの推しターミナルのWindows Terminalに乗り換えました。
[Windows Terminal - Microsoft Store](https://www.microsoft.com/store/productId/9N0DX20HK701)

デフォルトの白黒では寂しいので、`ctl + ,` で設定ファイルを開いて、`schema` の配列の中にお好みの色を足します。
[Windows ターミナルでの配色](https://aka.ms/terminal-color-schemes)

Materialっぽい配色を見つけたので流用してみました。

```json
    "schemes": [
        {
            "name": "Material",
            "background": "#1E282C",
            "black": "#073641",
            "blue": "#80CBC3",
            "brightBlack": "#002B36",
            "brightBlue": "#7DC6BF",
            "brightCyan": "#34434D",
            "brightGreen": "#C3E88D",
            "brightPurple": "#6C71C3",
            "brightRed": "#EB606B",
            "brightWhite": "#FFFFFF",
            "brightYellow": "#F7EB95",
            "cyan": "#AEDDFF",
            "foreground": "#C3C7D1",
            "green": "#C3E88D",
            "purple": "#FF2490",
            "red": "#EB606B",
            "white": "#FFFFFF",
            "yellow": "#F7EB95"
        }
    ]
```

同じ設定ファイルの中で、`schema`で指定した名前を`profile`で使用することで、設定を変えます。一つ一つ変えるのが面倒なので、`defaults`に放り込みます。
[Windows　ターミナルの設定](https://docs.microsoft.com/ja-jp/windows/terminal/customize-settings/profile-settings)

```json

    "profiles":
    {
        "defaults":
        {
            "fontFace": "Cascadia Code",
            "colorScheme": "Material",
            "fontSize": 11,
            "useAcrylic": true,
            "acrylicOpacity": 0.7
        },
        "list":
        [
            {
                "guid": "{xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxx}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            }
        ]
    }

```

こんな感じにまとまります。画像ではFira Codeを使用してます。

![2020-06-24_11-00-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4721/a091e352-05ab-2eb8-eb0b-2220841fabaa.png)

## WSL2を入れる

ようやく、WSLのお時間です。公式ガイドに沿ってインストールします。
WSL2にはWindows 2004以上が必要ですので、windowsの古い人は腹をくくってupdateです。

[Windows 10 用 Windows Subsystem for Linux のインストール ガイド](https://docs.microsoft.com/ja-jp/windows/wsl/install-win10)

まずはWSLをを有効にしないといけません。早速、Terminal君の出番です。

```powershell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```

WSLが有効になったので、"仮想マシン プラットフォーム" オプション機能を有効にします。

```powershell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
```

ここで一度、再起動。

最後にWSL2をデフォルトに設定して、WSL2の導入は完了です。

```powershell
 wsl --set-default-version 2
```

## ディストリビューションをインストール


[Microsoft Store](https://aka.ms/wslstore) からLinuxのディストリビューションを選択。
慣れてるので、[Ubuntu-20.04 LTS](https://www.microsoft.com/store/apps/9n6svws3rx71) を選択。

## Windows Terminal からWSL

WSLが優しいので、Windows Terminalの設定ファイルにエントリーを作ってくれてるんですが、いまいちなので、足します。
GUIDは省くと、勝手に追加してくれます。便利。

```json
        "list":
        [
            {
                "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
                "hidden": false,
                "icon": "%ONEDRIVECONSUMER%/Pictures/WindowsTerminal/ubuntu-orange-32x32.png",
                "name": "Ubuntu-20.04",
                "commandline": "wsl.exe -d Ubuntu-20.04",
                "startingDirectory": "//wsl$/Ubuntu-20.04/home/%USERNAME%"
            }
        ]
```

アイコンを指定したくて、置所に困ったので、OneDriveの上に置いて、Pathを通しました。ビジネスユーザーだと`%ONEDRIVE%`にあるんですが、個人ユーザの場合には`%ONEDRIVECONSUMER%`にあります。

WSLのデフォルトのディレクトリは使いづらいので、Ubuntuの$HOMEにあたる場所に設定しています。WSLの中と外で同じユーザ名を使用しているので、`%USERNAME%`で横着します。