WSLの端末エミュレータとして長年 wsltty を愛用してきましたが、先日特に前触れなくwslttyが突然起動しなくなるという不具合に見舞われました。この症状自体は何度か経験があり、以前はwslttyの再インストールなどで治っていたのですが、今回は色々試しても治りませんでした。
調査したところ、公式Githubのissueに似たような報告があり、Githubのトップページには以下のような記載があるではありませんか!
Wsltty does not seem to work with WSL V2 mode since release 2.0.0 (#343). As a workaround until a solution in the wslbridge gateway, it is suggested to install release 1.3.17
WSLをダウングレードするのはさすがに憚られたので、他の端末エミュレータに乗り換えることを決意しました。
Windows Terminal への乗り換え
調べてみたところ、最近ではMicrosoft製のWindows Terminalがなかなかイケているらしいので、こちらを乗り換え先に選びました。インストールはMicrosoft Storeからで簡単です。
インストール直後の外観は結構お粗末なので、タブバーの下三角→ 設定 (Ctrl+,) →プロファイル→既定値→外観 からお好みの見た目に変更しましょう。私はこんな感じにしています。
配色は「One Half Dark」、フォントは「Cica」の15ポイントを使用し、「背景の不透明度」を95%にしています。背景をちょっとだけ透過させることで割とそれっぽくなります。
設定はシェルごとに変えることも可能ですし、細かい設定は左下の「JSONファイルを開く」から直接JSONで記載できます。とても便利。
エクスプローラからターミナルへのドラッグ&ドロップでWSL版のパスが入るようにする
以上のようにWindows Terminalを設定ししばらく使っていたのですが、エクスプローラからファイルやディレクトリをターミナルへドラッグアンドドロップした際に、 /mnt/ で始まるWSLのパスではなくWindows版のパスが入ることに気づき少しハマりました。
実はWSLを起動する際に、スタートにピン留めされていた「WSL」(正面を向いた青いペンギンのアイコン)から起動していたのですが、これが悪さをしていました。青ペンギン版WSLは C:\Program Files\WSL\wsl.exe へのショートカットですが、こちらの実行ファイルではWindows版のパスをWSL版に変換する処理が走りません。正しい実行ファイルは C:\Windows\system32\wsl.exe です。ややこしいですね(正確には C:\Windows\system32\wsl.exe -d Ubuntu などとディストリビューション名の指定が必要)。
Windows Terminalのタブバーの下三角から黒ペンギンアイコンの「Ubuntu」を選択すれば上記の正しい実行ファイルが起動し、ドラッグアンドドロップでWSL版のパスが入るようになります。手動で毎回切り替えるのは大変なので、Windows Terminalの設定→スタートアップから「規定のプロファイル」を「Ubuntu」(黒いペンギンの全身のアイコン。赤い丸 (ubuntu.exe) は不可)に変更するとよいでしょう。ちなみに「wt」コマンドでWindows Terminalを実行できることを知っていると少し便利かもしれません。
おわりに
Cygwin時代も含めるとかれこれ10年以上minttyにはお世話になってきましたが、このような形で終わりを迎えるとは思ってもいませんでした。しかも乗り換え先がMicrosoft社製のターミナルとは。時代の流れは恐ろしいものです。
エクスプローラからのドラッグアンドドロップの話は意外とググっても欲しい情報が出てこなかったのですが、結構気づかずに使い続けている方もいるのではと思っております。この記事が少しでもお役に立てれば幸いです。
