Windows Terminalでもmsys2を使おう


はじめに

Windowsのデフォルトのconhost.exeのクソさに誰もが直面したことがあるだろう。そしてminttyやConEmuを使い始める人が出てくる。

もしくは最近だとVisual Studio Codeのターミナルが結構優秀なのでそれを使ったりしているかもしれない。これについては前に
Visual Studio Code 15.1の統合シェルをMSYS2のbashにする
という記事を書いた。

さて、Windows10がリリースされてもう随分たつが、ConPTY APIの導入、そしてWindows Terminalの実装開始とWindowsの端末環境に大きな変化が訪れようとしている。
https://github.com/microsoft/terminal
執筆現在まだ正式リリースはされていないが、かなり完成度が高くなってきていて、割と使い物になるレベルに達している。

さて、そんなWindows Terminalでmsys2のbashを使うにはどうすればいいのか。おもむろにググったがなんとまさかの日本語の文献がヒットしない。これは私が書くしかないのでは?

ちなみに似たような事例としてgit bashを使いたいという場合もあると思うのですが、それについては
Windows Terminal で Git Bash を表示する
という記事がありました。

準備

すでにWindows Terminalはインストールされているものとする。

PowerShellをまず開いて

> [guid]::NewGuid()

を実行する。これでGUIDが取得できる。

設定

Windows Terminalを開いて、Ctl+,すると設定ファイルが開く。

profilesの項目に

        {
            "acrylicOpacity" : 0.5,
            "closeOnExit" : true,
            "colorScheme" : "Campbell",
            "commandline" : "cmd.exe /c \"set MSYSTEM=MINGW64&& set MSYS=winsymlinks:nativestrict&& C:/msys64/usr/bin/bash.exe --login\"",
            "fontFace" : "HackGen",
            "fontSize" : 11,
            "guid" : "{00000000-0000-0000-0000-000000000000}",
            "historySize" : 9001,
            "icon": "C:/msys64/msys2.ico",
            "name" : "MSYS2",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : "C:/msys64/home/yumetodo",
            "useAcrylic" : true
        }

のように記述する。最初からPowerShellやらコマンドプロンプトの設定が記述されていると思うが、ここでの記述順がそのままメニューでの並びになる

acrylicOpacity

透過設定。デフォルトで0.5。

colorScheme

いくつかは既定のカラースキーマがあるほか、schemesのところに自分で追加することでそれを呼び出すこともできる。

こういうのとか。

commandline

環境変数を設定するような項目はどうも見当たらないのでcmd.exeの引数で頑張ることで実現する。
環境変数の意味は
Visual Studio Code 15.1の統合シェルをMSYS2のbashにする
でもみてほしい。

fontFace

多分省略できるしDejaVu Sans Monoとかとか好きなのを使えばいい。ちなみに例示したHackGen
【文字幅 半角3:全角5 も追加】Ricty を神フォントだと崇める僕が、フリーライセンスのプログラミングフォント「白源」を作った話
で紹介のあるフォントだ。

guid

先程取得しておいたGUIDをここに書く。

ちなみにdefaultProfileにここと同じGUIDを書けばそのプロファイルが規定になる。

icon

なくてもいいがアイコンがあるほうがいいよね。msys64直下にicoファイルがあるのでそれを参照する。ちなみにms-appdata:///roaming/msys2.icoとしている例も見かけたが私の環境では動かなかった。

startingDirectory

起動したときのカレントディレクトリ。念の為指定したけどなくても動いた。よくわからん。

useAcrylic

これを使うと透過が有効になる。

動作例

(図は透過させてないものです)

参考資料