Windows Terminalの現時点での設定可能項目について
数日前にMicrosoft Storeで公開されたWindows Terminalを インストールしていろいろいじってみたので、2019/06/27時点での設定ファイルの書き方や設定内容について、 自分への備忘録的にまとめておこうと思います。
(2019/06/29 追記) もうちょっと実際に設定するなどして内容をアップデートしました
注意
- あんまり情報がないので、Try&Errorだったりソースコードからの推測だったりで書いている情報があります
- 調べても現時点でよく分かんないこともたくさんあります
- 誤った情報が盛りだくさんの危険性があります
- プレビュー版に対する設定ファイルの書き方なので、後日めちゃくちゃ変更される可能性があります
- そのうちMicrosoftくんが公式のドキュメントをまとめてくれるかもなので(すでにある?)、そっちがあったらそっちを見てください
設定ファイルの開き方
Windows Terminal上部にある「+」の横をクリックして出てくるメニューのSetting
を選びます。
なおこのファイルは、以下に配置されています。
C:\Users\$USER\AppData\Local\Packages\Microsoft.WindowsTerminal_{ランダムな英数字列}\RoamingState
設定ファイルの構造
大きく分けて、下のような構造になっています。
{ "globals" : { Windows Terminal 全体の設定 }, "profiles" : [ { コマンドプロンプトとかPowerShellとかWSLとか、 Windows Terminal経由で起動するプログラムの設定 } ], "schemes" : [ { カラースキーマの設定 } ], }
設定内容(2019/06/27時点)
カラースキーマ設定
"schemes"
に設定を追記していきます。例えばデフォルトのカラースキーマの1つであるCampbellの設定は次のとおり。
{ "background" : "#0C0C0C", "black" : "#0C0C0C", "blue" : "#0037DA", "brightBlack" : "#767676", "brightBlue" : "#3B78FF", "brightCyan" : "#61D6D6", "brightGreen" : "#16C60C", "brightPurple" : "#B4009E", "brightRed" : "#E74856", "brightWhite" : "#F2F2F2", "brightYellow" : "#F9F1A5", "cyan" : "#3A96DD", "foreground" : "#F2F2F2", "green" : "#13A10E", "name" : "Campbell", "purple" : "#881798", "red" : "#C50F1F", "white" : "#CCCCCC", "yellow" : "#C19C00" },
name
がカラースキーマ名で、background
およびforeground
がそれぞれ背景色と前景色。
あとはキー名の通り、各色の設定です。
使い方は、後述のprompt
設定において、
使用するカラースキーマ設定にname
に指定した名前を設定することで
そのカラースキーマが適用されます。
デフォルトでいくつか定義されているけど、そんなに数も多くないし、 自分で作るっていうのもあれなので、先人が作ってくださった設定をコピペして使うのがいいと思います。
mac使っている人とかにはおなじみのiTerm Color Schemesに なんとWindows Terminalで使うための設定ファイルがWindows Terminalの公開に合わせて用意されている(!!)ので、 ありがたくそれを使わせてもらうと捗ります。
グローバル設定
Windows Terminalの挙動を定義するもので、次の項目が設定可能です。
globals
設定に記載します。
"globals" : { "alwaysShowTabs" : true, "defaultProfile" : " ... ", "initialCols" : 120, "initialRows" : 30, "keybindings" : [ ... ], "requestedTheme" : "system", "showTabsInTitlebar" : false, "showTerminalTitleInTitlebar" : false },
設定名 | 設定可能値 | 内容 |
---|---|---|
alwaysShowTabs |
true/false | 常時タブを表示する。falseかつshowTabsInTitlebar もfalseだと起動時にタブ領域が表示されないし、ついでにGUI操作で新しいタブを開いたり設定ファイルを開いたりできなくなる。 |
defaultProfile |
文字列 | Windows Terminal起動時に起動するprompt 設定のguid の値 |
initialCols |
整数値 | 【憶測】画面起動時の画面幅(桁数) |
initialRows |
整数値 | 【憶測】画面起動時の画面高さ(行数) |
keybindings |
別記 | ショートカットキー設定 |
requestedTheme |
system /dark /light |
UIテーマdark /light はそれぞれダークテーマ・ライトテーマでsystem はシステム設定に合わせる、というものだと思います。あと、これ以外の値を設定した場合は多分 system になります。下記参照 |
showTabsInTitlebar |
true/false | trueだとタイトルバーと切り替えタブが融合する |
showTerminalTitleInTitlebar |
true/false | trueだと選択しているタブのタイトルがタイトルバーにも表示される。showTabsInTitlebar がtrueだと一見何が変わったのかよく分からないですが、ちゃんとタスクバーにマウスカーソル持っていくと、表示されるテキストがこの設定の影響を受けます |
requestedTheme
showTabsInTitlebar
ショートカットキー設定
global
設定中のkeybindings
に設定します。
"globals" : { "keybindings" : [ { "command" : "closeTab", "keys" : [ "ctrl+w" ] }, ... ] }
設定名 | 設定可能値 | 内容 |
---|---|---|
command | 別表 | ショートカットキーで実行する操作。別表に設定可能値を記載 |
keys | 文字列の配列 | ショートカットキー 書き方はデフォルトの設定を見れば分かると思うので割愛。配列になっているから複数設定できそうだけど、現時点ではできないようで、設定するとなかったことにされます(設定が削除されます!) |
command
に設定できるものは、デフォルト設定から分かるものとソースコードから、
次のものが設定できるようです(使えるかはちゃんと調査していないです)。
設定可能値 | 内容 |
---|---|
closeTab |
タブを閉じる |
closeWindow |
【ソースコード】ウィンドウを閉じる 試したら設定自体はvalid判定みたいだけど、動作はしなかった |
copy |
【ソースコード】コピー これはちゃんと動く |
decreaseFontSize |
【ソースコード】フォントサイズを小さくする 試したら設定自体はvalid判定みたいだけど、動作はしなかった |
increaseFontSize |
【ソースコード】フォントサイズを大きくする 試したら設定自体はvalid判定みたいだけど、動作はしなかった |
newTabProfile0 |
profiles の1番目の設定で新しいタブを開く |
newTabProfile1 |
profiles の2番目の設定で新しいタブを開く |
newTabProfile2 |
profiles の3番目の設定で新しいタブを開く |
newTabProfile3 |
profiles の4番目の設定で新しいタブを開く |
newTabProfile4 |
profiles の5番目の設定で新しいタブを開く |
newTabProfile5 |
profiles の6番目の設定で新しいタブを開く |
newTabProfile6 |
profiles の7番目の設定で新しいタブを開く |
newTabProfile7 |
profiles の8番目の設定で新しいタブを開く |
newTabProfile8 |
profiles の9番目の設定で新しいタブを開く |
newTab |
profiles の1番目の設定で新しいタブを開く |
newWindow |
【ソースコード】新しいウィンドウを開く 試したら設定自体はvalid判定みたいだけど、動作はしなかった |
nextTab |
次のタブに移動する |
openSettings |
設定ファイルを開く |
paste |
【ソースコード】ペースト こちらはinvalidな設定判定になり、設定が削除された |
prevTab |
前のタブに移動する |
scrollDownPage |
1ページ分下に進む |
scrollDown |
1行分下に進む |
scrollUpPage |
1ページ分上に戻る |
scrollUp |
1行分上に戻る |
splitHorizontal |
上下に画面分割する ちゃんと動いた! |
splitVertical |
左右に画面分割する ちゃんと動いた! |
switchToTab0 |
左から1番目のタブに移動する |
switchToTab1 |
左から2番目のタブに移動する |
switchToTab2 |
左から3番目のタブに移動する |
switchToTab3 |
左から4番目のタブに移動する |
switchToTab4 |
左から5番目のタブに移動する |
switchToTab5 |
左から6番目のタブに移動する |
switchToTab6 |
左から7番目のタブに移動する |
switchToTab7 |
左から8番目のタブに移動する |
switchToTab8 |
左から9番目のタブに移動する |
switchToTab |
【ソースコード】どこかのタブに移動する? こちらはinvalidな設定判定になり、設定が削除された |
プロファイル設定
起動するプログラム(コマンドプロンプト/PowerShell/WSLなどなど)やその表示の方法について設定します。 上にあるものほど、リストの上部に表示されるようです。
"profiles" : [ { "acrylicOpacity" : 0.5, "background" : "#012456", "closeOnExit" : true, "colorScheme" : "Monokai Remastered", "commandline" : "powershell.exe", "cursorColor" : "#FFFFFF", "cursorShape" : "bar", "fontFace" : "Consolas", "fontSize" : 10, "guid" : "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", "historySize" : 9001, "icon" : "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png", "name" : "Windows PowerShell", "padding" : "0, 0, 0, 0", "snapOnInput" : true, "startingDirectory" : "%USERPROFILE%", "useAcrylic" : false }, ]
設定名 | 設定可能値 | 内容 |
---|---|---|
acrylicOpacity |
0.0 ~ 1.0 | 画面の不透明度。 |
background |
#rrggbb形式の色コード | 背景色 |
closeOnExit |
true/false | exitを実行するなどして終了した場合に自動でタブを閉じるかどうか |
colorScheme |
文字列 | カラースキーマ設定 schemes 設定の中から使いたい設定のname に設定されている値を指定する |
commandline |
文字列 | 実行するコマンドへのパス。\\ とエスケープすること |
cursorColor |
#rrggbb形式の色コード | カーソルの色 |
cursorShape |
vintage /bar /underscore /filledBox /emptyBox |
カーソルの形状。 |
cursorHeight |
整数値 | cursorShape にvintage を設定しているときのカーソルの高さ(ピクセル?) |
fontFace |
文字列 | 使用するフォント。 |
fontSize |
整数値 | フォントの大きさ。 |
guid |
自分で設定しない | この設定に対するUUID globals のdefaultProfile にこの値を設定する |
historySize |
整数値 | 【憶測】コマンド履歴の…単位はなんだ? 行数? バイト数? 件数? |
icon |
文字列 | リストに表示されるアイコン画像へのパス。C:\Users\$USER\AppData\Local\Packages\Microsoft.WindowsTerminal_{ランダムな英数字列}\RoamingState )を表すパスms-appdata:///roaming/ も使用可能。 |
name |
文字列 | リストに表示されるプロファイル名 |
padding |
左パディング(整数値), |
タブの表示領域に対してパディング(余白)を設定する。 |
snapOnInput |
true/false | よくわかりません |
startingDirectory |
文字列 | 初期ディレクトリのパス |
useAcrylic |
true/false | trueの場合、acrylicOpacity 設定に応じてウィンドウを半透明表示する |
backgroundImage |
文字列 | 背景画像へのパス。 |
backgroundImageOpacity |
0.0~1.0 | 背景画像の透明度。 |
backgroundImageStretchMode |
none /fill /uniform /uniformToFill |
背景画像の表示方法none そのまま表示するfill ウィンドウの大きさに合わせて拡大縮小するuniform 背景画像のアスペクト比を保ったまま拡大縮小するuniformToFill 背景画像のアスペクト比を保ったまま拡大縮小するが、 |
scrollbarState |
visible /hidden |
【ソースコード】スクロールバーを表示するかどうか hidden だとスクロールバーが表示されない |
cursorShape
backgroundImageStretchMode
最後に
なんか、間違った設定とかしているとWindows Terminalくんが勝手に設定削除してくれるので、 バックアップとってからいじったほうがいいです。
間違ってたり、これ知ってるよみたいなことがあったりしたら教えてください。 もう1時すぎてんじゃん……。眠すぎて死ぬ……。