Skip to content

Instantly share code, notes, and snippets.

@koron
Last active November 13, 2020 01:59
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save koron/664ca8cd9b688bcd9bb153087260599d to your computer and use it in GitHub Desktop.
Save koron/664ca8cd9b688bcd9bb153087260599d to your computer and use it in GitHub Desktop.
Windows Terminal の設定ファイルの差分

schema.json とか defaults.json がなんなのかは説明しない。
JSON Schema はソラで読めることが前提。
今後の更新にキャッチアップするかは不明。

1.4.2652.0-preview → 1.5.3142.0-preview

1.5 プレビュー版の変更です。

デフォルトブランチ名の変更

master → main への変更 それに連動してスキーマの $id が変更

profiles.schema.json の変更

#/definitions/* の変更

  • BellStyle の追加: enumで none or audible

  • Icon の追加

    アイコンとして使う画像ファイルのパスもしくは絵文字

    タブやドロップダウンメニューやジャンプリストに使う

  • ScrollUpAction (scrollUpのパラメーター)の追加

  • ScrollDownAction (scrollDownのパラメーター)の追加

  • Keybinding のプロパティ変更

    • icon 追加
    • name 追加 - コマンドパレット上での名前
  • Globals のプロパティ変更

    • disableAnimations の追加 (bool, default:false)

    • initialCols の説明追加。launchModeがmaximizedかmaximizedFocusの場合、本プロパティは機能しない

    • initialPosition の説明追加。同上

    • initialRows の説明追加。同上

    • launchMode enum値追加: focus and maximizedFocus

    • useTabSwitcher deprecatedマークされた。 tabSwitcherMode が代替?

    • tabSwitcherMode useTabSwitcher からのリネームっぽい

      enumでの設定方法を追加: mru, inOrder, and disabled

      true の場合 mru 相当。デフォルトは true

      nextTab および prevTab アクションの振る舞いを設定する。

  • Profile のプロパティ変更

    • backgroundImage に特別な値 desktopWallpaper 追加
    • bellStyle プロパティ追加
    • icon プロパティは #/definitions/Icon 型に変更

アクションの変更

  • openTabRenamer の追加

defaults.json の変更

  • useTabSwitcher のデフォルト値が mru に変更

    注) 新しい tabSwitcherMode にまだ切り替わってない

  • actionsrenameTabopenTabRenamer が追加

    どちらも keys は定義されてない

1.3.2382.0-preview → 1.4.2652.0-preview

1.4 プレビュー版の変更です。

ShortcutActionName の追加

  • closeOtherTabs
  • closeTabsAfter
  • sendInput
  • setColorScheme
  • tabSearch
  • togglePaneZoom
  • wt

ShortcutActionName での定義位置の変更

  • commandPalette
  • find
  • openTabColorPicker
  • renameTab
  • setTabColor
  • toggleAlwaysOnTop

#/definitions の追加

  • CopyFormat
  • AnchorKey
  • SendInputAction - キーを入力するアクション
  • SetColorSchemeAction
  • WtAction
  • CloseOtherTabsAction - タブを1つ残して全部閉じる
  • CloseTabsAfterAction - 指定したタブの右のタブをすべて閉じる

#/definitions の変更

  • CopyActioncopyFormatting プロパティの追加
  • Globals
    • copyFormatting プロパティの型が CopyFormat に変更
    • useTabSwitcher プロパティが追加
  • Profilepadding プロパティの型が変更

defaults.json の変更

  • useTabSwitcher の追加
  • Ctrl+Shift+P でコマンドパレットを開く
  • その他、コマンド追加

1.2.2234.0-preview → 1.3.2382.0-preview

1.3 プレビュー版の変更です。

MENUキーがキーショットカットに利用可能になった

#/definitions/KeyChordSegmentapp および menu が追加されてる。

startOnUserLogin が追加

#/definitions/Globals に。

true にすると Windows 起動時に Windows Terminal も起動する。 グループポリシーなどで個別にスタートアップ内のエントリーを無効化すると この設定は機能しない。

launchMode"fullscreen" が追加

フルスクリーンで起動できるようになった。

defaults.json の変更

  • 既定のキーショートカットを表すラベルが bindings から actions に変わった…

    profile.schema.json 中で該当するフィールドは keybindings だったので 微妙に一貫性がなく近い将来何か変更がありそうな予感

1.1.2022.0-preview → 1.2.2234.0-preview

1.2 プレビュー版の変更です。

1.1.1671.0-preview → 1.2.2022.0-preview

1.2 プレビュー版の変更です。

$schema のバージョン更新

JSON Schema のバージョンが更新された: draft-07 → 2019-09

キーショートカットに割り当て可能なアクションが増えた

  • toggleFocusMode - タブラインの表示/非表示をトグルする

  • toggleAlwaysOnTop - alwaysOnTop をトグルする

  • toggleRetroEffect - レトロエフェクト(走査線描画)をトグルする

  • setTabColor - タブの色を設定する

  • openTabColorPicker - タブの色選択ウィンドウを表示する

  • renameTab - タブの名前を変える なぜか keybinding から使えない

  • commandPalette

    仕様

    利用可能なコマンド一覧を表示する。 旧来は keybinding に指定可能なコマンドはドキュメントをみないと どんなコマンドがあるかわからなかった。 コマンドパレットは利用可能なコマンド一覧にアクセスするUIを提供している。

    ctrl+space でパレットを開くための設定は以下の通り。 "keybindings" 内に追加する。

    { "command": "commandPalette", "keys": ["ctrl+space"] },

    これからもコマンドが増えていくことを考えるとほぼ必須の機能と言っても良い。 (コイツを設定しないといコノ機能自身へのアクセス手段がないことに矛盾を感じるがw)

#/definitions/SetTabColorAction が増えた

setTabColor アクションの引数と思われる

#/definitions/Globals の変更

alwaysOnTop の追加

常に手前のの設定。 複数のウィンドウに設定した場合は最近フォーカスを得たものが手前に来る。

largePasteWarning の追加

5KiB 以上のクリップボードを張り付けようとした時に警告を出す。 デフォルト true

multiLinePasteWarning の追加

クリップボードから複数行のテキストを張り付けようとした時に警告をだす。 デフォルト true

rowsToScroll が deprecated

defaults.json の変更

  • alwaysOnTop のデフォルト値 false を明示
  • rowsToScroll の削除
  • Profile.commandline フルパス指定へ変更
  • Solarized Dark の black と brightBlack の入れ替え
  • Solarized Light の black と brightBlack の入れ替え
  • bindings に追加
    • toggleFocusMode デフォルトのキーなし
    • toggleAlwaysOnTop デフォルトのキーなし
    • toggleRetroEffect デフォルトのキーなし
    • openTabColorPicker デフォルトのキーなし

1.0.1401.0 → 1.1.1671.0-preview

1.1 プレビュー版の変更です。

個人的に最高&最大の変更なんですが Ctrl-H が一文字削除に戻りました! 自分はこれのためだけに 1.1 へ移行しました。 (2020/06/30 追記)

OpenSettingsAction の追加

以下のプロパティを持つ、設定ファイルを開くためのアクション

  • action="openSettings"
  • target: "settingsFile", "defaultsFile" or "allFiles"

Globals の変更

defaultProfile

型が #/definitions/ProfileGuid から string に変わった。

tabWidthMode

"compact" が追加になった。 フォーカスされたときはアイコンとタイトルが、 外れるとアイコンだけが表示されるモード。

Profile の変更

altGrAliasing の追加

通常 Windows は Ctrl+Alt を AltGr のエイリアスとして扱う。 これは false に設定することでそれをエイリアスとして扱わないようにするオプション。 デフォルトは true つまりエイリアスとして扱う。

defaults.json の変更

  • "startOnUserLogin"false として明示
  • "altGrAliasing" が PowerShell と cmd に true として明示
  • openSettings アクションが ctrl+alt+, にキーバインド

0.11.1121 → 1.0.1401.0

いよいよ待ちに待った正式版です。

DynamicProfileSource の追加

トップレベルに DynamicProfileSource が追加された。

string の enum で Windows.Terminal.Wsl, Windows.Terminal.Azure and Windows.Terminal.PowershellCore のどれかです。 値による意味の違いは不明。気になるのは Wsl かな。

ShortcutActionName から値の削除

ShortcutActionName から enum 値 decreaseFontSize が削除された。 adjustFontSize に統合されてその消し忘れと思われる。

NewTerminalArgs.index の説明変更

「0始まりだよ」って明示された

CopyAction.singleLine の説明変更

表現の修正。

SplitPaneAction のプロパティの説明変更

どちらも表現の修正。

  • split
  • splitMode

Keybinding.keys の説明変更

書き方の詳細な説明が追加。

Globals のプロパティの説明変更

  • alwaysShowTabs - キーワードを "" で囲んだだけ
  • defaultProfile - キーワードを "" で囲んだだけ
  • initialPosition - キーワードを "" で囲んだだけ
  • rowsToScroll - キーワードを "" で囲んだだけ
  • theme - 特殊な値 system についての説明が追加
  • showTerminalTitleInTitlebar - キーワードを "" で囲んだだけ
  • snapToGridOnResize - キーワードを "" で囲んだだけ
  • tabWidthMode - 設定可能な値とその効果の説明が追加
  • confirmCloseAllTabs - 読みやすくなった

Global.disabledProfileSources の追加

動的にプロファイル生成の対象外とするプロファイル(?)のリスト。 開始(初めて使う?)時にプロファイルを生成させないようにする。

string 配列

Global."experimental.rendering.forceFullRepaint" の追加

実験的機能: 毎フレーム描画する。

boolean

Global."experimental.rendering.software" の追加

実験的機能: ハードウェアをやめてソフトウェア(a.k.a. WARP)で描画する。

boolean

Profile のプロパティの軽微な変更

  • background - 説明の微修正
  • backgroundImage - 説明の微修正
  • backgroundImageAlignment - 説明文の追加
  • backgroundImageOpacity - 説明とデフォルト値の追加
  • closeOnExit - 微修正
  • cursorHeight - デフォルト値の追加
  • cursorShape - 説明の微修正
  • fontFace - デフォルトが Cascadia Code から Cascadia Mono へ変更
  • fontSize - 説明の微修正
  • foreground - 説明の微修正
  • padding - 説明の微修正
  • selectionBackground - null 許容。説明の微修正
  • suppressApplicationTitle - デフォルト値の追加

Profile.colorTable プロパティの廃止

え? これなくなって変わりはどうなるん? なんかクレバーな代替品があるんだろか? ああ colorScheme あるからそれでヤレって話か。

Profile.connectionType プロパティの廃止

これはどうなったんやろ?

Profile.cursorColor の変更

null が schema 的に許容された。 カーソルカラーをプロファイル毎に指定できる機能だが、 古い定義だと必ず指定することになる。

Profile.fontWeight の追加

フォントの太さ設定。値は数値か文字列 enum。

数値は 100 から 990 の間

文字列enum は thin, extra-light, light, semi-light, normal, medium, semi-bold, bold, extra-bold, black, extra-black の11個

デフォルトは normal

defaults.json の変更

いくつかの Profile の fontFaceforeground が変わってた。

0.10.761.0 → 0.11.1121

設定ファイル名の変更

profiles.json から settings.json に変わった。

KeyChordSegment の厳密化

pattern の正規表現が厳密化し、内容が description に記載された

#/definitions/ShortcutActionName の変更

  • 追加
    • adjustFontSize
    • unbound
  • 削除
    • copyTextWithoutNewlines
    • increaseFontSize
    • moveFocus{XXX} - where {XXX} is Down, Left, Rights or Up
    • newTabProfile{N} - where {N} is 0 ~ 8
    • resizePane{XXX} - where {XXX} is Down, Left, Rights or Up
    • splitHorizontal and splitVertical
    • switchToTab{N} - where {N} is 0 ~ 8

#/definitions/AdjustFontSizeAction の追加

adjustFontSize とあわせて KeyBinding で使うハズ

#/definitions/SplitPaneAction の変更

splitMode の追加。 split の非 required

#/definitions/KeyBinding の変更

commandAdjustFontSizeActionnull が追加

#/definitions/Globals の変更

copyFormatting プロパティの追加

When set to true, the color and font formatting of selected text is also copied to your clipboard. When set to false, only plain text is copied to your clipboard.

色とかの情報もクリップボードへのコピー対象に含める。デフォルト true

requestedThemetheme へプロパティ名の変更

#/definitions/Profile の変更

backgroundImage プロパティの値に null を許容

cursorHeight プロパティの値に null を許容

fontFace プロパティのデフォルト値を変更

ConsolasCascadia Code

icon プロパティの値に null を許容

source プロパティの値に null を許容

tabTitle プロパティの値に null を許容

設定ファイルの旧スキーマを非サポート化

旧スキーマ = トップに globals プロパティがある方式のサポートを停止。 トップレベルに直接 #/definitions/Globals を書く新方式へ統一。

0.9.433.0 → 0.10.761.0

KeyChordSegment 型の追加

後述の keys の定義で利用される。

Keybindings.keys が単一要素をサポートした

今までは配列のみだったのが配列もしくは単一文字列に変わった。 それにともない文字列の定義が KeyChordSegment として切り出された。

antialiasingMode が増えた

フォントレンダリングのアンチエイリアスの方法が選べる。 選択可能な値は grayscale, cleartype, aliased で デフォルトは gayscale

  • aliased アンチエイリアスなし。ビットマップフォントに向いてそう
  • grayscale 落ち着いた感じのアンチエイリアス
  • cleartype grayscale とほぼ一緒だが境界部分が若干強く、暗背景+明前景だと全体的に明るい印象になる

注意: 変更しても既存のタブには適用されない。新規に開いたタブから

0.8.10261.0 → 0.9.433.0

マイナーバージョンがごっそり減ったのは謎

profile.schema.json

Coordinates が増えた

場所は #/definitions/Coordinates 文字列でパターンは ^(-?\\d+)?(,\\s?(-?\\d+)?)?${負を含めた数値}[, {負を含めた数値}...] となり用途は不明。

ShortcutActionName enum に find が増えた

場所は #definitions/ShortcutActionName/enum の中。

SplitState enum に auto が増えた

場所は #definitions/SplitState/enum の中。

SplitPaneActionsplit プロパティのデフォルトが auto に変更

タイトル通り

initialPosition が増えた

位置は #definitions/Global/properties 。 起動時のウィンドウの左上の位置を指定するやつ。 Coordinate を使う。

launchMode が増えた

位置は #definitions/Global/properties 。 起動時のウィンドウの特殊?サイズ: maximized or default

rawToScroll の型が integer のみになった。

マウスホイールによるスクロール量を指定するやつ。 以前は "auto" 指定のために integer が許容されてた気がする…が詳細は不明。

snapToGridOnResize の説明変更

たぶん true の部分のクォートがなくなっただけ

confirmCloseAllTabs の追加

右上の×でウィンドウを閉じようとしたときに、確認するかどうか。 デフォルトはする。

background のデフォルト値追加

#0c0c0c 超暗い灰色がデフォルトカラーとなった

foreground のデフォルト値追加

#cccccc 明るい灰色がデフォルトカラーとなった

hidden の説明変更

#/definitions/Profile/properties/hidden typo 修正っぽい。

suppressApplicationTitle の説明変更

たぶん true の部分のクォートがなくなっただけ

defaults.json

confirmCloseAllTabs の追加

値は true

keybinding の追加

  • ctrl+insert copy
  • shift+insert paste

0.8.10091.0 → 0.8.10261.0

profile.schema.json

変化なし

defaults.json

変化なし

その他

Ctrl+hが単語の削除になってしまった。 おそらく microsoft/terminal#3935 の影響による。 一応 microsoft/terminal#4397 で報告したが… 直してもらえるかはわからない。

0.7.3451.0 → 0.8.10091.0

schema.json

rowsToScroll の追加

追加位置は #/definitions/Globals/properties/

マウスホイールの1単位ごとに何行スクロールするかの設定。 最小 0 ~ 最大 999。 デフォルトはシステムの設定を継承で、 0 もしくは "system" の時はデフォルト扱い。 type: integer なのに "system"default なのが謎。

snapToGridOnResize の追加

追加位置は #/definitions/Globals/properties/

true の時はウィンドウのリサイズがキャラクタの境界に合わせて離散的にふるまう。 false の時はスムースに設定できる。 デフォルト値は false

tabWidthMode の追加

追加位置は #/definitions/Globals/properties/

タブの幅の決め方を指定する。 指定できる値は "equal""titleLength" のどちらか。 デフォルト値は "equal"

備考

  • 話題の experimental.retroTerminalEffect は 0.7.3451.0 にすでにあった。 位置は #/definitions/Profile/properties

defaults.json

  • tabWidthMode が追加。値は "equal"
  • snapToGridOnResize が追加。値は false

気になる点

  • pane内の右側に余計な余白ができるようになってる → 太くなったスクロールバーでした。 #/definitions/Profile/properties/scrollbarState"hidden" にすると隠せて表示エリアが1~2文字分稼げる。
  • cmd(タブ内のシェル)を終了するときに [process exited with code 9009] のようなエラーがでて、タブが自動で閉じられないことがある。 profiles.json のライブ編集&保存をすると発生するのかも。 シンボリックリンクを通じてVimで編集しているのことも関係している可能性あり。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment