今回は、正式版に向けて開発プロジェクトが行った設定周りの変更点と設定ファイルの再セットアップ方法を紹介したい。すでにWindows Terminal 1.0がリリースされており、アップデート済みという方も多いだろう。正式版が登場したのを機に、これまで加筆し続けてきたであろう設定ファイルを見直してみる価値はあるはずだ。

設定ファイルを再セットアップしよう

まず、設定ファイルの再セットアップ方法について説明しておこう。「再セットアップ」などと言うと手間のかかるような気がするが、作業はとてもシンプルだ。これまで利用していた設定ファイルをバックアップしてWindows Terminalを立ち上げ直し、新規設定ファイルを再編集するだけである。

Windows Terminalにはデフォルトの設定で書き換え不可の「defaults.json」と、設定変更用の「profiles.json」の2つの設定ファイルがあることは第6回で説明した。ユーザーはprofiles.jsonを編集して設定を制御する、という仕組みになっている。

profiles.jsonは、「%USERPROFILE%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState」以下に保存されている。このフォルダをエクスプローラで表示すると次のように設定ファイルが置いてあることを確認できる。

Windoww Terminalの設定ファイルの保存場所

設定ファイル名を見てもらえばわかると思うが、実はこれまでprofiles.jsonだったのだが、バージョン0.11より「settings.json」という名称に変更された。だが、この設定ファイルを編集して動作を制御することに変わりはない。なお、Windows Terminalを バージョン0.11以上にアップデートすれば、自動で名称変更が行われるためユーザー側が対応する必要はない。

実際にsettings.jsonを作り直してみよう。まず、Windows Terminalを開いているのであれば一度終了させておく。次に、開いていたフォルダ内にある設定ファイルをバックアップする。と言っても、名称を変更するだけだ。例えば、次のように変更してみよう。

これまで使ってきた設定ファイルの名称を変更

設定ファイルの名称を変更したら、そのエクスプローラを開いたまま再度Windows Terminalを起動させる。Windows Terminalが立ち上がると同時に、フォルダにsettings.jsonが生成されるはずだ。

settings.jsonが自動作成される

Windows Terminalは、初回起動時に使用環境に合わせた設定ファイルを自動で生成するようになっている。この機能を利用することでバックアップした設定ファイルと新規作成された設定ファイルをVisual Stadio Codeなどのテキストエディタで同時に開いて、旧設定を参考にsetting.jsonを書き直せばよい。

プレリリース版で行われた設定周りの変更

プレリリース版で変更された設定周りをいくつか紹介しておこう。まずコピー&ペーストに関して、次のようなショートカットキーがsettings.jsonのkeybindgs内に設定されるようになった。

// Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json.
// These two lines additionally bind them to Ctrl+C and Ctrl+V.
// To learn more about selection, visit https://aka.ms/terminal-selection
{ "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" },
{ "command": "paste", "keys": "ctrl+v" },%

「Ctrl」+「C」キーによるコピーと、「Ctrl」+「V」キーによるペーストのショートカットキーが加わっている。

以前、コピー&ペーストのショートカットキーとして「Ctrl」+「Shift」+「C」と「Ctrl」+「Shift」+「V」が割り当てられていることは紹介した。キーの割り当てに関しては引き続きdefaults.jsonに記載されており、これらのショートカットキーを使ったコピー&ペーストも可能だ。

もしdefaults.jsonで設定されているコピー&ペーストのショートカットキーを無効にしたい場合は、こちらも前に紹介したようにショートカットキーの編集で「unbound」を指定すればよい。具体的には、次のような行をsettings.json内のkeybindgs内に記載する。なお、コマンドには「unbound」ではなく「null」を指定しても無効化できる。

{ "command": "unbound", "keys": "ctrl+shift+c" },
{ "command": null, "keys": "ctrl+shift+v" },

コピー周りでは、書式付きコピーの制御機能も追加された。書式付きコピーとは、テキストをコピーする際に文字の大きさやカラー情報といった書式情報もコピーする機能で、新たに「copyFormatting」という項目が用意され、値に「true」か「false」を指定して有効、または無効を設定するようになった。

この機能はdefaults.jsonでは「有効」になっており、生成したsettigns.jsonでは「無効」に初期設定されている。つまり、デフォルトでは「無効」となる。

また、ショートカットキーにコピー機能を割り当てる際に指定するcopyコマンドの引数も変更されている。以前は「trimWhitespace」という引数が用意されてていたが廃止され、「singleLine」という引数が用意された。

先ほど、コピー用ショートカットキー「Ctrl」+「C」がsettings.jsonに設定されるようになったと説明したが、その設定にこのsingleLine引数も設定されている。名称は変わったが、テキストのコピー時の改行を保持するか、破棄して1行にするかの設定有無を決める引数であることに変わりはない。

廃止された設定項目

いくつか廃止された設定項目もある。まず、設定ファイルの先頭に記載されていたglobals:{}プロパティが廃止された。

初期のプレビュー版では、このプロパティ内にWindows Terminal全体に有効な項目を設定していたが、現在はglobalsプロパティ内にある設定項目は無視されるようになっている。自動生成したsettings.jsonにはglobalsプロパティはなく、全体項目はJSONファイル内の最初の{}内に記載するように変わった。

自動生成のsettings.jsonにはglobalsプロパティはない

全体設定項目にあった「requestedTheme」の名称が「theme」に変更されている。もしrequestedThemeを使っている場合は、例えば次のように書き直しておこう。値に関しては適宜読み替えてほしい。

"theme": "system",

ショートカットキー周りに関してもコマンドやコマンドの引数の廃止と変更が行われている。一覧にすると次のようになる。ショートカットキー周りを再編集する際には気をつけておきたい。

廃止されたコマンド名または引数 変更内容
trimWhitespace singleLineに名称が変更
decreaseFontSize adjustFontSizeに名称を変更。引数deltaに負の整数を指定することで文字サイズを縮小できる
increaseFontSize adjustFontSizeに名称を変更。引数deltaに正の整数を指定することで文字サイズを拡大できる
newTabProfile0-9 newTabコマンドの引数indexで指定するよう変更
switchToTab0-9 switchToTabコマンドの引数indexで指定するよう変更
splitHorizontal/splitVertical splitPaneコマンドの引数splitに指定する値。horizontal/Verticalに名称を変更
moveFocusDown/moveFocusUp/moveFocusLeft/moveFocusRight moveFocusコマンドの引数directionはdown/up/left/rightに変更
resizePaneDown/resizePaneUp/resizePaneLeft/resizePaneRight resizePaneコマンドの引数directionはdown/up/left/rightに変更

設定を見直そう

すでにWindows Terminal 1.0は公開されているが、プレリリース版で行われた設定周りの変更を押さえておいて損はない。defaults.jsonや自動生成したsettings.jsonを見直しながら再構成することで、これまでに行った設定を再確認できるいい機会にもなると思う。本稿を参考に、一度設定ファイルを一新させてみてはいかがだろうか。

参考資料