次世代WindowsターミナルソフトWindows Terminal
Microsoftがモダンな次期ターミナルソフト(?)として、オープンソースソフトウェアで開発中
https://github.com/microsoft/terminal
インストール
GitHubよりインストールバイナリ(msixbundle)を入手してインストールをする。
※ msixbundleインストーラーは、Windows 10 v1809 以降から対応しているので、必然的に1809以前は、verupしないと使用できない可能性。
以下、v0.9指定のものぐさインストール方法
REM When install
curl -k -L https://github.com/microsoft/terminal/releases/download/v0.9.433.0/Microsoft.WindowsTerminal_0.9.433.0_8wekyb3d8bbwe.msixbundle -O
powershell Add-AppPackage -path "Microsoft.WindowsTerminal_0.9.433.0_8wekyb3d8bbwe.msixbundle"
del "Microsoft.WindowsTerminal_0.9.433.0_8wekyb3d8bbwe.msixbundle"
REM When uninstall
REM powershell Remove-AppPackage -Package "Microsoft.WindowsTerminal_0.9.433.0_x64__8wekyb3d8bbwe"
あとは、wt.exe にパスが通ってるので、wt
コマンドで起動可能(0.9以降より)
Settings
Windows Terminal起動後、メニューよりSettings
で、profiles.json
を弄って編集する。GUIは現状用意されていない。編集後の保存時にリアルタイムで設定は反映される。
設定ファイルは、ファイル更新監視されているようで、設定保存したタイミングで動的にすぐに反映される。
(尚、中身を見ると、//
コメントのjsonファイルを使ってるので、JSON.parse()等でエラーが出るかもで、気持ち悪い気もしますが最近のJSONパーサー的(jsoncpp使ってるいるよう)にはアリなんですかね)
profiles.json
の保存場所は以下へ保存されている
%localappdata%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\profiles.json
(8wekyb3d8bbweはランダムな文字列)
デフォルト起動シェルの変更
デフォルト起動シェルは、PowerShellなので、cmdに変更したいとかの場合は、以下。
(jsonファイル内にcmd.exeのguidがあるので、そちらを後に書けば良い。個人的には、行を入れ替えればすぐに切り替え確認可能なので、以下のように同一ハッシュキーで別の値で上書きするスタイルが好き。)
{
"defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
}
ダークモード
{
"requestedTheme": "dark",
}
文字列選択時にコピー
{
"copyOnSelect": true,
}
フォント変更
デフォルトはConsolasに設定されているようだが、リガチャ対応のCascadia Code
(cascadia.ttf)もWindows Terminalの内部に同梱されている。好きなフォントで設定可能。またシェル毎に個別に設定変更可能
{
"profiles":
{
"defaults":
{
// Put settings here that you want to apply to all profiles
"fontFace": "Consolas",
"fontFace": "Cascadia Code",
"fontSize": 9
},
}
}
Window透過設定
全シェル共通デフォルト設定以外にも、シェル毎に個別に設定変更可能
{
"profiles":
{
"defaults":
{
// Put settings here that you want to apply to all profiles
"useAcrylic": true,
"acrylicOpacity": 0.5
},
}
}
背景画像設定
動画gifとかも設定できるが五月蠅いのでほどほどに。Opacityや、StretchModeを細かく設定可能
{
"profiles":
{
"defaults":
{
// Put settings here that you want to apply to all profiles
"backgroundImage": "ms-appdata:///roaming/images/backgrounds/matrix.gif",
// 直接画像ファイルの場合は、パス区切りは \ ではなく、 / に置き換えて設定
"backgroundImage": "C:/temp/WallPaper.jpg",
"backgroundImageOpacity": 0.3,
"backgroundImageStretchMode": "uniform",
"backgroundImageStretchMode": "uniformToFill",
"backgroundImageStretchMode": "none",
"backgroundImageStretchMode": "fill",
},
}
}
ソフト内のデフォルト設定確認
そもそものソフト内のデフォルト設定は以下に同梱されており、直接確認も可能
C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_0.9.433.0_x64__8wekyb3d8bbwe\defaults.json
コマンドライン引数に対応(v0.9以降)
元々、アプリストア特有のms-~URIスキーム対応等をするのかと思いきや、v0.9からは、コマンドライン引数と言うか、アプリエイリアス対応をしてきてexe直接実行にも対応している。
> where wt
C:\Users\user\AppData\Local\Microsoft\WindowsApps\wt.exe
エスケープシーケンス対応
元々 cmd.exe では、完全なエスケープシーケンス対応がされていなかったが、Windows Terminal上のcmdではエスケープシーケンス対応も可能
chcp 65001 & curl ja.wttr.in
上記のようにchcpでコードページをUTF-8に変更してからだが、固定長フォントで見れば綺麗に見えるようになった💪
Vim の :terminal から wt.exe
Vimは、:terminal で他のシェル(bash, powershell, ubuntu等)を起動する事も可能だが、
v0.9 以降、wt.exe が同梱されるようになったので、:termも対応出来ているのか確認してみたが、
:term wt
で実行してもGUIなWindows Terminalが普通に起動するだけで、Vim内表示出来る対応が出来ていない。
(コンソール系APIに対応していないWindows Terminal側の問題かな)