話題のWindows Terminalをカスタマイズしてイケてる開発環境を作る [主にPowerlineの導入と設定]

話題？のwindows terminalをカスタマイズしてイケてる開発環境を作るための記事です。

##完成予想図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214955/0b591104-60e6-ea24-ff03-085643e1ac66.png)


##1, Windows Terminalをインストールする
これがないと始まりません、Microsoft Storeからインストールできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214955/a534fd36-a110-438a-46b7-d2d4485cf93f.png)

##2, PowerShellにOh My Poshをインストールする
GitHubに記載がある手順に従ってインストールしていきます。

```
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
Install-Module -Name PSReadLine -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck
```

ここまで実行した後、Profileを編集します。

```
notepad $PROFILE
```
でメモ帳が立ち上がるので一番下に以下を付け足します。

```
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox
```

ここまでの手順でエラーがなければ再起動するとpowerlineの導入が完了していますが恐らくまだフォントの追加が済んでいないため完成予想図のようにはなってないはずです。

##3,フォントの追加

[ adam7 / delugia-code ](https://github.com/adam7/delugia-code/releases?WT.mc_id=-blog-scottha)

今回は上記のURLにあるDelugia.Nerd.Font.Complete.ttfを使います、リンクからダウンロードした後.ttfファイルをクリックしてインストールします。

このままではまだWindows Terminalには反映されないので設定を変更していきます。
Windows Terminalのタブの右にある▽からSettingをクリックするとprofiles.jsonを開くことができます。

この中のprofilesのnameが"Windows PowerShell"の部分の中に以下のように1行追加します。

```
//省略

"profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false,
            "fontFace":  "Delugia Nerd Font"　//追加
        },
//省略
```

これで先ほどインストールしたフォントが反映されpowerlineがきれいに表示されたはずです。


ここまででpowerlineの導入は完了です、ここからpowerlineの設定とWindows Terminalの設定をしていきます。

##Windows Terminalの背景透過
先ほど"fontFace"を追加したのと同じところに以下を追加するだけです。

```
"acrylicOpacity" : 0.7,
"useAcrylic" : true,
```

##カラーテーマ

```
"schemes": []
```
この中に記述していきます、今回は以下のようにしてみましょう。

```
//省略
    "schemes": [{
        "name" : "MyScheme",
        "background" : "#282A36",
        "black" : "#21222C",
        "blue" : "#69ebff",
        "brightBlack" :"#6272A4",
        "brightBlue" :"#7fa2fa",
        "brightCyan" :"#A4FFFF",
        "brightGreen" :"#69FF94",
        "brightPurple" :"#FF92DF",
        "brightRed" :"#FF6E6E",
        "brightWhite" :"#FFFFFF",
        "brightYellow" :"#FFFFA5",
        "cyan" :"#8BE9FD",
        "foreground" :"#F8F8F2",
        "green" : "#e1ff69",
        "purple" : "#FF79C6",
        "red" : "#FF5555",
        "white" : "#F8F8F2",
        "yellow" : "#F1FA8C"
    }],
//省略
```

このカラーテーマを反映するためには"profiles"内に反映したいカラーテーマの名前を指定する必要があります。
以下のようにしてみましょう。

```
//省略

"profiles":
    [
        {
            // Make changes here to the powershell.exe profile
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
　　　　　　　"acrylicOpacity" : 0.7,
　　　　　　　"useAcrylic" : true,
            "hidden": false,
　　　　　　　"colorScheme": "MyScheme", //追加
            "fontFace":  "Delugia Nerd Font"
        },
//省略
```
カラーテーマが変更されるはずです。
今回は背景透過とカラーテーマのみ紹介しますが他にもWindows Terminalの設定項目はたくさんあります、以下の記事が分かりやすいです。

[Windows Terminal設定メモ](http://www.usagi1975.com/201911162133/)
[Windows Terminalの現時点での設定可能項目について](https://e8l.hatenablog.com/entry/2019/06/28/010454)
[Windows Terminalが期待大な件。](https://qiita.com/NumLocker/items/74bd024e839e76dcd8c3)

#Powerlineの設定
Oh My Poshのテーマを弄ります。
[ JanDeDobbeleer / oh-my-posh ](https://github.com/JanDeDobbeleer/oh-my-posh)を読んでみるとより詳しく設定できます。

まずは読み込んでいるテーマが置かれているディレクトリを確認します、powershellで$ThemeSettingsを実行してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214955/925a8dca-b5f1-49b0-fe87-bbc425ad4fd1.png)

../Paradox.psm1というファイルを読み込んでいるようです、これは手順2でSet-Theme ParadoxをProfileに記述しているためです。
オリジナルのテーマファイルを作成することもできるのですが、今回は面倒なのであまりよくないですがこのファイルを直接編集して自分好みのテーマにしてしまおうと思います。

例えば”master”の部分の色を緑から別の色に変更したいとします。
まずはどの部分を変更すればいいのか確認するため現状の割り当てを Show-ThemeColors で確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214955/521fef92-8f25-fe68-0f89-ee557066eb43.png)
GitDefaultColorがGreenになっているのでこの部分を変更すればよさそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214955/95e22121-588c-a21d-9789-a8c17ea66a2b.png)
個々の値は画像のように入力することで確認することもできます。
それではこの部分をどのような色にできるか一覧をShow-Colorsで確認してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214955/77dc16aa-0949-9be3-9b18-05c33cc535f6.png)
今回は試しにDarkMagentaに変更したいとします。
Paradox.psm1をエディタで開き、一番最後に以下を追加して再起動すると色が変更されているはずです。

```
//省略
$sl.Colors.GitDefaultColor = [ConsoleColor]::DarkMagenta
```

次はシンボルを変更してみましょう。
完成予想図を見るとFox＠DESKTOP-FOXの左におばけがいます、恐らく初期設定だと⚡になっているはずです。
このシンボルが設定されている場所はParadox.psm1ではなく ~\Documents\WindowsPowerShell\Modules\oh-my-posh\2.0.381内に存在するdefaults.ps1になります、ファイル名からわかるようにカラーテーマで指定されてない部分はこのファイル内の記述が反映されるようです。
このファイルをエディタで開いて⚡、UnicodeにおいてU+26A1を指定している部分を探すと以下のようになっているはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214955/4d498897-ae55-e845-81d3-39669fda27d1.png)
この中のElevatedSymbolを変更すると⚡の部分がカスタムできるようです、なので先ほど編集していたParadox.psm1の最後に以下のように記述してみます。

```
//省略
$sl.PromptSymbols.ElevatedSymbol = [char]::ConvertFromUtf32(0xe007)
```
これで再起動すると⚡からおばけにシンボルが変更されているはずです。
ちなみに$sl.PromptSymbols.ElevatedSymbol = ""とすると消すこともできます。

なんかいい感じになりましたでしょうか。

##参考
[How to make a pretty prompt in Windows Terminal with Powerline, Nerd Fonts, Cascadia Code, WSL, and oh-my-posh](https://www.hanselman.com/blog/HowToMakeAPrettyPromptInWindowsTerminalWithPowerlineNerdFontsCascadiaCodeWSLAndOhmyposh.aspx)
[Windows Terminal設定メモ](http://www.usagi1975.com/201911162133/)
[Windows Terminalの現時点での設定可能項目について](https://e8l.hatenablog.com/entry/2019/06/28/010454)
[Windows Terminalが期待大な件。](https://qiita.com/NumLocker/items/74bd024e839e76dcd8c3)

[]()
[]()

##### 蛇足
Stream apiを使ったツイートが上から下に流れないタイプのTwitterクライアントを開発しています。
ぜひ使ってみてください。

https://newtwitterclient.azurewebsites.net/