Help us understand the problem. What is going on with this article?

次世代WindowsターミナルソフトWindows Terminal

次世代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を細かく設定可能
- ref: How to customize the new Windows Terminal with Visual Studio Code - DEV Community 👩‍💻👨‍💻

{
    "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に変更してからだが、固定長フォントで見れば綺麗に見えるようになった💪

WindowsTerminal01.png

Vim の :terminal から wt.exe

Vimは、:terminal で他のシェル(bash, powershell, ubuntu等)を起動する事も可能だが、
v0.9 以降、wt.exe が同梱されるようになったので、:termも対応出来ているのか確認してみたが、
:term wt で実行してもGUIなWindows Terminalが普通に起動するだけで、Vim内表示出来る対応が出来ていない。
(コンソール系APIに対応していないWindows Terminal側の問題かな)

Refs

beckorz
Vimmer
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした