Windows Terminalによるターミナル作業の効率を上げるためには、設定をカスタマイズして自分なりに使いやすい環境を構築していく必要がある。Windows TerminalにはGUIを備えた便利な設定ツールが用意されていないので、カスタマイズには設定ファイルを直接編集しなければならない。前回、設定ファイルの全体構造について解説したので、今回は実際に色やフォントをカスタマイズする方法を紹介しよう。

カラースキームを設定する

ターミナルの文字の色やフォント、背景の色などをカスタマイズすることは、文字を見やすくしたり、目の疲れを軽減したりする上で極めて重要だ。まず色の設定だが、Windows Terminalには「カラースキーム」による設定と、個別に色指定する設定の2種類が用意されている。カラースキームは文字や背景などの色設定をひとまとめにして定義したもので、Windows Terminalには標準で次のようなスキームが用意されている。「Tango Dark」と「Tango Light」の2つは、バージョン1.0になって新しく追加されたスキームだ。

カラースキーム名 内容
Campbell 標準のスキーム
Campbell Powershell Powershell向けの標準スキーム
Vintage 昔のターミナルアプリケーション風
One Half Dark One Halfのダーク版
One Half Light One Halfのライト版
Solarized Dark Solarizedのダーク版
Solarized Light Solarizedのライト版
Tango Dark Tangoのダーク版
Tango Light Tangoのライト版

デフォルトで用意されたカラースキームの定義は、「default.json」の「schemes」のブロックに記述されている。例えば、下のスクリーンショットは「One Half Dark」と「One Half Light」の定義部分である(わかりやすいようにカラーコード部分を色付けして表示している)。

カラースキームの定義

「foreground」と「background」がそれぞれ前景色(デフォルトの文字色)と背景色で、「cursorColor」はカーソルの色だ。その下に各色の名称に対するカラーコードの定義が並んでいるが、同じ色でも微妙に異なる定義になっていることがわかると思う。

カラースキームを指定すれば、そのスキームの色設定が全て反映されるので、手軽に見た目を変えることができる。カラースキームはプロファイルごとに指定することができるので、例えば、PowerShellとUbuntuで見た目を変えたい場合などは、それぞれに異なるスキームをセットしておけばよい。次のコードは、PowerShellに「Solarized Light」を、Ubuntuに「One Half Light」を指定した例になる。

    ...省略...
    "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
        },
        "list":
            [
            {
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false,
                "colorScheme": "Solarized Light"
            },
                    {
                "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
                "name": "コマンド プロンプト",
                "commandline": "cmd.exe",
                "hidden": false
            },
            {
                "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
                "hidden": false,
                "name": "Ubuntu",
                        "source": "Windows.Terminal.Wsl",
                "colorScheme": "One Half Light"
            },
            {
                "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
                "hidden": false,
                "name": "Azure Cloud Shell",
                "source": "Windows.Terminal.Azure"
            }
        ]
    },
    ...省略...

初期状態ではカラースキーマの設定項目は無いので、自分で「colorSchme」というプロパティを用意し、値としてスキーマ名を記述すればよい。設定ファイルを保存すると、それぞれのターミナルの表示は次のように変わる。

カラースキームに「Solarized Light」を指定した例

カラースキームに「One Half Light」を指定した例

なお、カラースキームは自分で独自に作ることもできる。その場合は、「setting.json」の「schemes」のブロックに、default.jsonの設定をまねして自前のスキーム定義を記述すればよい。

個別に色指定する

カラースキームでの色の設定に対して、背景色などをプロファイルごとに個別に設定することもできる。直接プロファイルに色指定できる主な箇所は次の通りだ。

設定箇所 プロパティ名
背景色 background
前景色 foreground
カーソルの色 cursorColor
選択範囲の背景色 selectionBackground

次の設定は、PowerShellのプロファイルに対して、背景色、前景色、カーソル色、選択範囲の背景色をそれぞれ指定してみた例である。

        ...省略...
        {
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
            "hidden": false,
            "background": "#3A96DD",
            "foreground": "#000000",
            "cursorColor": "#FF0000",
            "selectionBackground": "#E74856",
            "colorScheme": "Solarized Light"
        },
        ...省略...

この場合、該当箇所の色設定はカラースキームの設定よりも優先されて、次のような表示になる。

背景色や前景色を個別に指定した例

文字のフォントを設定する

続いて、文字のフォントをカスタマイズしてみよう。フォントについても、色の指定と同様にプロファイルごとに個別に設定することができる。プロファイルに対して設定できるフォント関連のプロパティには次のようなものがある。

プロパティ名 内容 指定できる値
fontFace フォント名 文字列
fontSize フォントサイズ 整数
fontWeight フォントの太さ “normal”、”thin”、”extra-light”、”light”、”semi-light”、”medium”、”semi-bold”、”bold”、”extra-bold”、”black”、”extra-black”、またはOpenTypeフォントの太さの数値
padding テキストの周囲の余白 ”#”、”#, #”、”#, #, #, #” (#は任意の整数)
antialiasingMode テキストのアンチエイリアシングをの方法 “grayscale”、”cleartype”、”aliased”

基本となるのは「fontFace」で、デフォルトでは「Cascadia Mono」というフォントが設定されている。また、デフォルトのフォントサイズは12、太さは「”normal”」、周囲の余白は上下左右とも8になっている。デフォルトの文字の表示は次のような具合だ。

デフォルトのフォントの表示

次の設定は、PowerShellに対して、フォントとしてMSゴシックを指定し、フォントサイズを16、太さを「”semi-bodl”」、そして余白として上下が10、左右が8になるように指定した例になる。

        ...省略...
        {
            "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
            "name": "Windows PowerShell",
            "commandline": "powershell.exe",
                    "hidden": false,
            "colorScheme": "Solarized Light",
            "fontFace": "MS Gothic",
            "fontSize": 16,
            "fontWeight": "semi-bold",
            "padding": "8, 10, 8, 10"
        },
        ...省略...

この設定を適用すると、文字の表示は次のようになる。

ちなみに、Windows Terminalのプレビュー版の段階では、デフォルトのフォントにはWindowsの標準フォントの一つである「Consolas」が使用されていたが、正式版がリリースされるにあたって、Cascadiaフォントの一つである「Cascadia Mono」に変更された。CascadiaはMicrosoftによって提供されているフォントで、コマンドラインアプリケーションやテキストエディタでの使用に合わせて調整されているという特徴がある。非常に見やすいフォントなので、特に理由がなければデフォルトのまま使用してもよいだろう。CascadiaフォントにはCascadio Monoも含めて4種類のバリエーションがある。詳しくはMicrosoftが公開しているCascadia Codeのドキュメントを参照していただきたい。

参考資料