みねっちょのマイコン関係ブログ

組込開発系フリーソフトやハードの情報発信ブログ

MinGW/MSYS を新しい Windows Terminal から使う

本記事では、Windows 10 上にインストール済の MinGW/MSYS (1.0) のターミナルエミュレータとして、 Windows Terminal を使用する方法を紹介します。Windows Terminal は、2020年にリリースされたマイクロソフト製の新しいターミナルエミュレータです。

新しい Windows Terminal のインストール:

Microsoft Store を起動し、右上の検索欄に「Windows Terminal」と入力して Preview が付かない方を選び、Microsoft Corporation 製である事を確認しインストールします。2021年2月現在では、リリース版のバージョンが 1.5、Preview 版のバージョンが 1.6 となっています。

設定ファイル ( .json) の編集:

Windows Terminal を起動し、ターミナル上部バーのタブの隣に有る下向きのブラケット (括弧) を押してメニューバーを開き、設定を選びます。

f:id:minettyo:20210204235359p:plain

「.json」ファイル (実際のファイル名は settings.json ) を「メモ帳」で開きます。

 f:id:minettyo:20210202224628p:plain

「”profiles”:」文の下の中括弧 (カーリーブラケット { } ) で始まるブロックの中の、更に「"list":」文の下の四角括弧 ( [ ] ) で始まるリストの中に、下記の1ブロックを付け加えます。頻繁に使うならリストの1番目とするのが良いでしょう。尚、// から行末まではコメントとなります。

「"guid"」行は必須ではありませんが、Windows Terminal のデフォルトとして MSYS の bash を起動したい場合には必要となります。これについては次の見出しで説明します。下記の例では未だコメントアウトしてあります。

この例では追加のオプション設定として、フォントに別途インストール済の DejaVu の16 ポイントを、カーソル形状に太い下線 (vintage) を設定していますが、これらの行も必須では有りません。カーソル形状は、"bar" ( ┃ ), "vintage" ( ▃ ), "underscore" ( ▁ ), "filledBox" ( █ ), "emptyBox" ( ▯ ), "doubleUnderscore" ( ‗ )  の中から選びます。

   {   
// Make changes here to the MSYS profile.
// "guid": "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}",
"hidden": false,
"name": "MSYS",
"icon": "C:\\MSYS\\m.ico",
"commandline": "C:\\MSYS\\bin\\bash --login -",
"fontFace": "DejaVu Sans Mono",
"fontSize": 16,
"cursorShape": "vintage"
},

一意な GUID の取得:

Windows Terminal のデフォルトとして MSYS の bash を起動したい場合には、専用に一意な GUID の取得が必要となります。Windows PowerShell を起動し、次のコマンドを打ちます。

[Guid]::NewGuid()

 すると自分のパソコン内で一意な GUID が表示されますので、これを上記 .json ファイルの XXXX の部分にコピー&ペーストします。終了したら行の先頭の // のコメントは外します。

Windows Terminal 起動時のデフォルトの切り替え:

Windows Terminal をインストールした直後の状態では、デフォルトで起動するのは PowerShell になっています。.json ファイルの上の方に記載されている "defaultProfile" の行を、先程 MSYS の bash 用に設定した値に変更します。下記の例では、PowerShell の設定をコメントアウトし、私のパソコン専用に新たに取得した MSYS の GUID に入れ替えて居ます。また、見やすい様に行末に // で始まるコメントを入れて居ます。

  // "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", // PowerShell
"defaultProfile": "{26dd098c-a22e-4e5d-90f1-800ebc20fd49}", // MSYS

MSYS 側での設定:

MSYS 側で幾つかの設定をしておく必要が有ります。

  1. LANG 環境変数文字コードSJIS に設定しておかないと、man ページの表示が乱れたり、vim スクリーン エディタが正しく動かなかったりします
    ~/.profile の中で次の設定をしておきます。
    export LANG=C.SJIS
    好みにより、GCC のエラー表示に日本語を希望の場合は ja_JP.SJIS とします。
  2. ls コマンドに alias を設定して --show-control-char の指定をしておかないと、ファイル名の日本語が表示出来ません。次の設定を ~/.profile から呼び出す ~/.bashrc もしくは ~/.profie に直接記載します。前者を推奨します。
    alias ls='/bin/ls --show-control-char'
  3. TERM 環境変数は自動で cygwin に設定されますが、問題有りません。/etc/termcap にはこのエントリが存在します。

f:id:minettyo:20210205013618p:plain

参考サイト:

Windows Terminal の「外観 (Appearance)」の設定に関する、マイクロソフトの公式な解説は次のサイトです。

docs.microsoft.com

トラブルシューティングのサイトは、日本語です。

docs.microsoft.com


また、DejaVu フォントの公式サイトは次の通りです。「Download」のページに行き、「dejavu-fonts-ttf-X.xx.zip」をダウンロードし、ZIP ファイルを展開した後、「.ttf」を右クリックしてインストールします。

dejavu-fonts.github.io


 MinGW の目次へ戻る