このページの本文へ

Windows Info 第435回

Windows Terminal Preview v1.21では、前回終了時のタブとその表示内容を復元できるように

2024年06月09日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷
Windows Terminal

設定のスタートアップにある「ターミナルの起動時」で「前のセッションからウィンドウを開く」を選択すると、次回起動時に終了時に開いていたタブとそのバッファの内容が復元されるようになる

Windows Terminalが安定版v1.20とプレビュー版v1.21に

 5月に、Windows Terminalの安定版v1.20とプレビュー版v1.21がリリースされた。今回は、この2つのバージョンを解説する。

 前回の記事(「内部的な改良で便利になったWindows Terminal v1.19での新機能を確認」)を掲載したのは昨年10月。このときは、安定版v1.18とプレビュー版v1.19を紹介した。その後に登場したv1.20はバク修正が重点で、その半分ほどが安定版v1.19にバックポートされた。このため、プレビュー版v1.20は本連載で扱っていない。

 Windows Terminalは、GitHub上では、2024年5月8日に安定版、プレビュー版が公開されたことになっている。安定版は、v1.20.11271.0(https://github.com/microsoft/terminal/releases/tag/v1.20.11271.0)、プレビュー版がv1.21.1272.0(https://github.com/microsoft/terminal/releases/tag/v1.21.1272.0)となっている。

 しかし原稿執筆時点で、安定版v1.20.11381.0とプレビュー版v1.21.1382.0がMicrosoftストア経由で配布されている。バージョンが上がった直後にすぐアップデートが出るのはそれほど珍しくない。おそらく急遽配布したアップデート(HotFix)なのだろうが、リリースノートがない。なんらかの手違いがあってバイナリの配布が先行してしまったのだと思われる。

 とはいえ、現在配布されているのはこれなので、当然評価もこのバージョンで実施している。結論から言えば、安定版・プレビュー版ともに、リリースノートと異なる挙動やGUI設定ページから「フォーカスされていない外観」項目が消えるなどの現象が見られた。

安定版v1.20での追加機能は少ない

 安定版のv1.20だが、前述のように新機能は少ない。大きな新要素としては、検索結果のハイライト表示、非アクティブ時の背景透明化、レンダリングエンジンAtlasの有効化、Alternate Scrollモードでのマウスによるスクロールなどでが挙げられる。また、4月に公開されたCascadia Codeフォント 2403.23が搭載されている。

 「非アクティブ時の背景透明化」だが、「フォーカスされていない外観」(Unfocused apperance)で背景を透明化できる。ただし、現状でsettings.jsonでのみ設定できるようだ。

 Windows Terminalのプロファイル設定では、「外観」背景の透明化を指定できるが、これと独立して、ウィンドウが選択されていないとき(非アクティブ時)の外観を設定できる。以下にその記述を示す。

"unfocusedAppearance": { "opacity": 50 }

 JSONのオブジェクト“unfocusedAppearance”は、GUI設定の「フォーカスされていない外観」を有効にしたときにも挿入されるものだ。ただしGUI設定では、背景の透過率(opacity)を指定できない。このため、settings.jsonを直接編集して挿入する必要がある。

 もう1つの大きな変更点として、Cascadia Codeフォント 2403.23がある。このバージョンでは、1文字を4分割、6分割、8分割したブロックパターンや罫線、拡大文字用パターンなどのキャラクタグラフィックス系の文字が追加された。

Windows Terminal

Cascadia Codeフォント 2403.23には、4倍角文字を表示するための部品となる文字や、1文字分の領域を2x2、2x3、2x4などに分割したグラフィックスキャラクタ、罫線キャラクタなどの字形が登録された

 こうしたパターンのコードは、もともとUnicodeで定義されている。そのフォントパターンがCascadia Codeフォントに追加された。

 なお、安定版v1.20でも、スクロールマーカーやシェル統合は無効になっている。次の安定版v1.21で有効化される予定らしい。

プレビュー版の新機能はたくさん

 安定版v1.20に比べプレビュー版v1.21の新機能は多い。大きなものとしては、

・「前のセッションからウィンドウを開く」で、前回終了時のタブとその表示内容を復元
・フォント指定でカンマ区切りで複数のフォントを指定可能になった
・フォント関連の設定が追加された
・JSONフラグメントでカスタムアクションを指定可能になった
・Allasレンダリングエンジンの設定
・実行ファイルからタブアイコンを自動抽出

などがある。前バージョンから、Atlasレイアウトエンジンが標準となり、本バージョンでは、旧レンダリングエンジンが廃止され戻すことができなくなった。Atlasエンジン自体も強化されており、フォント関連の機能が入ったほか、レンダリングエンジン自体の設定項目が追加された。

Windows Terminal

v1.21からは、レンダリングエンジンがAtlasのみとなり、従来のレンダリングエンジンに戻すことはできなくなった。設定ページには、Atlas用の設定(画面左)が追加されている。画面右はv1.20の設定ページ

 「前のセッションからウィンドウを開く」は、「GUI設定」→「スタートアップ」→「ターミナルの起動時」の選択肢である。

 この設定が有効だと、ターミナルウィンドウを閉じた場合などに、次回起動で終了時のタブが復元され、その表示内容(バッファ)まで復元される。バッファは、settings.jsonが保存されているディレクトリにVTエスケープシーケンスを含むUTF-16LEエンコードテキストがタブごとに保存される。

 ただし、シェルをexitコマンドなどで通常終了させたり、タブを直接閉じた場合には、バッファは保存されず、バッファを保存しているファイルを削除する。なお、ポータブル版の場合、インストール先ディレクトリにバッファが保存されるので、セキュリティに注意が必要だ。

 筆者の環境では、前述のMicrosoftストアで配布されていたプレビュー版では、タブは復元されたが、バッファは復元されなかった。ただし、バッファの保存ファイルは作られていた。

 フォント関連の設定追加としては、フォントフォールバックの制御やOpenType Variable FontのAxisやフォント固有の設定の追加などがある。GUI設定にある「プロファイルの外観」→「テキスト」で、フォントに対する設定が増えている。

Windows Terminal

プロファイルのフォント関連の設定が増えていて、フォントフェイスではフォールバック用に複数のフォントをカンマで区切って指定できるほか、変数フォント軸(OpenTypeのVariable FontのAxis)やフォント機能(機能タグ)などの指定が可能になっている。画面左側はv1.20の外観ページである

 カンマ区切りによる複数のフォント指定は、フォントフォールバック時に選択されるフォントを指定するためのものだ。フォントフォールバックとは、指定されたフォントに字形が存在しない場合、他のフォントを使って字形を表示するもの。

 Windows Terminal標準のフォントには、日本語の字形が含まれていないため、他のフォントを使って日本語文字を表示している。同様に、絵文字などもほとんどのフォントには含まれておらず、Windows標準の絵文字フォント(Segoe UI Emoji。SEGUIEMJ.TTF)を使う。

 このとき、Windowsは、指定されたフォントと同じ系統のフォントを選択するが、バランスなどを見ると必ずしも見栄えがいいとは限らなかった。このため、Cascadiaフォントを指定して日本語を表示したとき日本語文字の間が開きすぎて見た目があまり良くないことがあった(フォントのインストール状態に依存)。

 Axis(軸)とは、OpenTypeのVariable Font形式が持つ、字形を変形するためのパラメーター。Variable Fontは、1つのアウトラインデータをベースに、パラメーターを変えたときの差分などを組み込むことで、表示時に字形を補完で生成できるようにしたもの。作り方によっては太字や斜体などを個別のフォントファイルとして持つよりもファイルサイズを小さくできる。ただし、現状でVariable Font形式はそれほど多いわけではなく、大半の日本語フォントは非Variable Font形式を使う。

 Axisには、幅や斜体、太さといったパラメーターがあり、それぞれを個別に指定できる。このため、1つのフォントに対して、さまざまなバリエーションを作ることが可能になる。ただし、どのAxisを採用するかは、フォント制作者の判断になる。

 また、フォントが持つ固有の機能(OpenType機能タグ)も指定可能になった。これは、ゼロを斜線付きで表示するか、日本語フォントでJIS78字形を使うかなどのフォント機能の設定である。個々のフォントで何か実装されているのかは異なるが、機能タグに関しては、Microsoftのサイトにある「Registerd Feature(英語)」(https://learn.microsoft.com/ja-jp/typography/opentype/spec/featurelist)に記述がある。

 また実験的な機能として「ペインにターミナル以外のものを表示可能にした」というものがある。

Windows Terminal

実験的な機能として、ペインやタブの中でシェル以外を起動する機能が組み込まれた。現在は実験用の機能であるScratchpad(写真右側のペイン)のみが起動できる。今後のバージョンアップで、具体的な機能などが実装される予定だという

 これまでWindows Terminalのタブやペインは、必ずなんらかのシェルを起動する必要があった。この実験的な機能では、テキストの入力、表示のみが可能な「Scratchpad」をタブやペインとして開くことができる。ただし、現状Scratchpadは、単にテキストを入力して表示するだけしか機能のない実験用のエリアである。

 リリースノートがないビルドが配布され、ちょっと落ち着かない感じがある。このため、少なくともプレビュー版については日常的な利用は避けたほうが無難だろう。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン