このページの本文へ

前へ 1 2 次へ

Windows Info 第261回

v1.6まで進化し、GUIでの設定ページも用意されたWindows Terminal

2021年02月07日 10時00分更新

文● 塩田紳二 編集● ASCII

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

 Windows Terminalのプレビューv1.6が公開された。このバージョンでは、GUI設定ページが搭載されるなど、比較的大きく変更された。また、正式版でもv1.5が公開されている。v1.5に関しては、Preview版として以前紹介しているので、概要についてはその記事を見ていただきたい(「Preview版でv1.5まで進化したWindows Terminalの新機能を確認」)。

 なお、Microsoftストアで公開されているv1.5は、一部v1.6で修正された内容もを含んでいる。リリースに関する情報は、githubにリリースノートがある(https://github.com/microsoft/terminal/releases/tag/v1.5.10271.0)。

Windows Terminal Preview v1.6では、ついにGUI設定ページが搭載された

v1.6のプレビューで追加されたGUI設定ページ

 Windows Terminalは、これまで設定をjsonファイルの編集でする必要があった。開発者が使うことが多いものなので、外部のJsonエディタでの編集もそれほど苦ではないはずだが、今後は広く一般ユーザーの利用も考えられる。そこで、GUI設定ページの開発を昨年から進めていた。ただし、このGUI設定ページはまだ開発途上で、キー割り当てはまだなされていない。プレビュー版で利用する場合、まず、Settings.jsonに以下のようなキー割り当てを記述する。

{ "command": { "action": "openSettings", "target": "settingsUI" }, "keys": "ctrl+shift+," },

 ただし、v1.6でsettings.jsonの仕様が変わっており、v1.6で初めてWindows Terminalをインストールした場合、キー定義を書くのは「"actions":」になるが、v1.5以前に一回インストールしてsetting.jsonが存在する場合、「"keybindings":」になる点に注意してほしい(内側の構造は同じ)。

 これにより、「Ctrl+Shit+,」でGUI設定ページが開くようになるほか、コマンドパレット(Ctrl+Shift+P)からも「設定を開く」(英語だと「Open Settings...」)でページを表示するようになる。前記のキー割り当てをしないと、コマンドパレットにも表示されない。

 設定ページは、settings.jsonでしていたほとんどの内容をカバーしている。ただし、キー割り当てや特殊な設定(後述のHLSLシェーダーなど)は、settings.json側でする必要がある。

 設定ページはWindowsの設定アプリと同じく、左側に大項目、右側に設定ページがでる構造で、大項目は、「スタートアップ」、「操作」「概観」「配色」「レンダリング」の5項目とプロファイル設定になっている。

「操作」には、クリップボード操作やタブ切り替えなどに関する設定がある

「外観」は、テーマやタブバーの表示、タブ幅などの設定がある

「配色」は、Color-Schemeの設定になっていて、20色のカラーセットを指定する

「レンダリング」テキストレンダリングエンジンの設定

プロファイルの設定は、全プロファイルで共通となる「基本レイヤー」と各プロファイルの設定からなっているが、ページ構成は全て同じで、1つの項目に「全般」「外観」「詳細設定」の3つのタブがある

 settings.jsonの「"schemes":」が「配色」、「"profiles":」がプロファイルになっていて、そのほかは、Settings.jsonのトップレベルに記述していた項目が分類されて残りの4項目に割り当てられている。ちょっとした設定であれば、外部のJsonエディタを起動することなく設定変更が可能だ。

HLSLシェーダーのサポート

 こちらも実験的な機能だが、Windows Terminalのテキスト表示領域に対して、HLSL(High Level Shading Language)による描画機能が追加されている。これは、外部ファイルにあるHLSLシェーダープログラムを使うもの。シェーダープログラムはGPU側で処理するため、CPUに負荷をかけずに高速な描画が可能になる。これを利用するには、Profilesに以下の行を追加する。

"experimental.pixelShaderPath": "HLSLファイルパス",

 HLSLファイルはHLSLで記述されたソースコード(テキストファイル)で、Direct3DのコンパイラがGPUのバイナリシェーダープログラムに変換して実行する。

 以前からあったRetroTerminalEffectsは、このシェーダープログラムを利用したものだったようだ。外部のHLSLソースファイルを読み込んでコンパイルして利用できるようにして、ユーザーがさまざまなシェーダープログラムにより背景描画などをできるようにした。

 たとえば、サンプルとして提示されている「Rasterbars.hlsl」は、以下のリストのようにテキストのソースコードだが、これをsettings.jsonで指定すると、読み込み時に自動的にコンパイルされ、GPUがWindows Terminalの背景を描画する。

Texture2D shaderTexture;
SamplerState samplerState;
cbuffer PixelShaderSettings {
  float Time;
  float Scale;
  float2 Resolution;
  float4 Background;
};
float4 main(float4 pos : SV_POSITION, float2 tex : TEXCOORD) : SV_TARGET {
  float4 color = shaderTexture.Sample(samplerState, tex);
  float4 ocolor = shaderTexture.Sample(samplerState, tex+2.0*Scale*float2(-1.0, -1.0)/Resolution.y);
  const float thickness = 0.1;
  float ny = floor(tex.y/thickness);
  float my = tex.y%thickness;
  const float pi = 3.141592654;
  float cola = ny*2.0*pi;
  float3 col = 0.75+0.25*float3(sin(cola*0.111), sin(cola*0.222), sin(cola*0.333));
  float brightness = 1.0-smoothstep(0.0, thickness*0.5, abs(my - 0.5*thickness));
  float3 rasterColor = col*brightness;
  float3 final = rasterColor;
  final = lerp(final, float(0.0), ocolor.w);
  final = lerp(final, color.xyz, color.w);
  return float4(final, 1.0);
}

 このプログラムでは、背景に印影のついた横棒が表示される。よく見ると横棒の明るいところでは、文字の影が見える。

rasterbars.hlslを指定すると、陰影のある横棒が表示される。よく見ると2行目の"Copyright……"の部分は、背景のバーの上に影が落ちている。こうした表示はGPUのシェーダーで処理されるため、CPU側に影響を与えない

 サンプルは以下のURLにある。

●Pixel Shaders in Windows Terminal
 https://github.com/microsoft/terminal/tree/main/samples/PixelShaders#pixel-shaders-in-windows-terminal

 念のため言っておくと、ここはgithubなので、上記ページのhlslファイルのリンクを右クリックして保存しても、保存されるのはファイルの中身を表示しているHTMLファイルなので注意が必要。

 本来ならgitで取得するのだが、開発者でもなければ、gitをインストールするのは面倒だろうし、サンプルファイルだけほしいのにプロジェクト全部をダウンロードするのも無駄な感じがある。試してみたければ、リンクを開いて、HLSLのソースコードをコピーしてメモ帳に貼り付けるのが簡単かもしれない。

 サンプルをいろいろと試してみたが、どうもWindows Terminal側が提供しているはずの経過時間を示す、Timeなどのパラメーターが更新されないようで、時間で変化するアニメーションのサンプルAnimate_scan.hlsl、Animate_breathe.hlslは動作しなかった。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,253
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,390
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥1,299
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥937
7
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,359
8
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥841
9
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,590
10
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
¥699

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

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