WSLのコンソールを便利で高機能な「wsltty」に置き換える:Tech TIPS
WSLで利用できるデフォルトのコンソールは、コマンドプロンプトをベースにした、非常にシンプルなものにすぎない。もっと機能が豊富で便利な端末エミュレーターを導入して、環境を改善しよう。
対象OS:Windows 10 Fall Creators Update(バージョン1709)以降(64bit版のみ)
Windows 10に「WSL(Windows Subsystem for Linux)」をインストールすると、Linux向けのプログラム(バイナリファイル)をそのまま実行できるようになる。現在では、UbuntuやDebian、SUSE Linux、WLinux(これはDebianベースの有償製品)など、数種類のLinuxディストリビューションを導入できるようになっている。WSLの導入とその関連情報については、以下の記事を参照していただきたい。
WSLのシェルを起動すると、コマンドプロンプトのウィンドウと同じ、黒い背景のコンソール画面(端末画面)が表示される。これはWSL向けに特別な機能を持っているわけではなく、バッファリング可能な行数も最大9999行と少なく、高度な端末エミュレーション機能も持っていない。
そこで、これを置き換えるために(有償や無償の)高機能な端末エミュレーターが幾つか提供されている。本TIPSでは、WSLの標準コンソールの代わりに使えるソフトウェアとして、「wsltty」を取り上げ、紹介する。
- 「mintty/wsltty」のリポジトリ(GitHub)
wslttyは、「mintty」をベースに開発された端末エミュレータ−である。mintty自体は、Windows OS上でUNIX互換環境を実現する「Cygwin」というプロジェクトのために開発されたものだ。それをWSL向けに簡単に利用できるようにしたのがwslttyである。
- 「mintty」のページ
wslttyの実行例
Windows 10に標準で付属するWSLのコンソール画面よりも高機能で使いやすい。エクスプローラーからファイルやフォルダをドラッグ&ドロップすると、パスをWSL向けに自動変換して貼り付ける機能も持っている(詳細は後述)。
wsltty(というよりmintty)とWSL標準のコンソールと比較すると、次のような利点がある。
- より高速で高機能、高度な端末エミュレーション(xterm/VT-100など)の実現
- ズーム機能(マウスホイールによるや拡大/縮小)やキーボードによるスクロール([Shift]+[Page Up]/[Page Down])、1万行を超えるバッファリングなど
- 容易なウィンドウの新規オープン([Alt]+[F2])や切り替え([Ctrl]+[Shift]+[Tab])
- 設定(ファイル)の保存や起動時の適用
- Windows OSのエクスプローラーからドラッグ&ドロップしたファイルやフォルダのパス名を、自動的にWSL向けのパスに変換して貼り付け可能(例:「c:\doc\file1.txt」を「/mnt/c/doc/file.txt」にする)
高機能な端末エミュレーターが欲しければ、Windows 10にXサーバを導入して(TIPS「WSL上にXサーバをインストールしてGUIを実現する」参照)、その上で端末エミュレーターを使うという方法もあるだろう。だが、wslttyやminttyのようなローカルのアプリなら、Windows OS側で使っているIMEをそのまま利用できるといったメリットがある。
wslttyのインストール
wslttyは、以下のサイトでWindows OS向けのインストーラーが入手できる。
- 「mintty/wsltty」のダウンロードページ(GitHub)
このページの一番上にある「Latest release」から、「wsltty-<バージョン番号>-install.exe」というファイルを取得する。原稿執筆時点での最新バージョンはVer.1.9.5であった。
このファイルをダウンロード後、ダブルクリックしてインストールする。インストール時に選択するようなオプションは何もなく、すぐにインストールは完了する。インストールが完了すると、[スタート]メニューの[WSLtty]というフォルダの下に幾つかのメニュー項目が作成される。
[スタート]メニューに登録されたwsltty
[スタート]メニューには、wslttyを起動するためのメニューと、エクスプローラーのコンテキストメニューへ登録するためのメニューが追加される。ディストリビューションごとに異なるメニューが用意される。「%」の有無は、wsltty起動時のカレントフォルダの違いによる。
幾つかの項目は、インストールされているWSLのディストリビューションに応じて自動的に作成されるが、それぞれのメニュー項目の意味は次の通りである。
メニュー | 意味 |
---|---|
add default to context menu | デフォルトのディストリビューション向けのwslttyをエクスプローラーのコンテキストメニューへ追加する |
add to context menu | 全てのディストリビューション向けのwslttyをエクスプローラーのコンテキストメニューへ追加する |
configure WSL shortcuts | [スタート]メニューのショートカットを再作成する。ディストリビューションを後で追加した場合などに利用 |
remove from context menu | wslttyをエクスプローラーのコンテキストメニューから削除する |
WSL Terminal %/ Ubuntu-18.04 Terminal %/ <ディストリビューション> % など |
Windows側のユーザーのホームディレクトリ、例えば「/mnt/c/Users/user01」の場所を初期フォルダ位置にしてwslttyを起動する |
WSL Terminal | WSL側のユーザーのホームディレクトリ、例えば「 ~ 」=「/home/user01」の場所を初期フォルダ位置にしてwslttyを起動する |
wsltty home & help | wslttyのGitHubリポジトリを開く |
wslttyのメニュー項目とその意味 |
WSL上に複数のディストリビューションをインストールしていると、「WSL Terminal %」以外に「Ubuntu-18.04 Terminal %」や「Debian Terminal %」など、複数のwsltty起動用メニュー項目が用意されるので、簡単に使い分けられる。
ディストリビューションを1つしかインストールしていなければ、「WSL Terminal」か「WSL Terminal %」のいずれかを起動する。「%」の有無で、シェル起動直後のディレクトリの場所が異なる。「%」がない方だとWSL側のユーザーのホームフォルダ(/home/user01など)、ある方だとWindows OS側のユーザーアカウントのフォルダ(/mnt/c/Users/user02など)になる。
なお、「デフォルトのWSL」は「wslconfig.exe」コマンドで表示したり、選択したりできる(単に「wsl」とだけ入力したときに起動されるのが、デフォルトのWSL)。詳細は以下の記事にある「複数のディストリビューションをインストールしている場合は?」の項目を参照していただきたい。
「コンテキストメニューへの登録」を実行しておくと、エクススプローラーでフォルダを選んで([Shift]キー+)右クリックしたときに表示されるメニューに、「WSL Terminal」などと表示されるようになる。これを使うと、特定のフォルダを初期フォルダにしてWSLを素早く起動できる。
wslttyを使う
wslttyを起動するには、[スタート]画面のメニューから[WSLTty]−[WSL Terminal]などを選択する。
wslttyの実行
起動すると、デフォルトのWSLコンソールとほぼ同じように見えるし、実際利用できる。色や設定を変更したければ、オプションを設定する。オプション画面は、マウスを右クリックして起動できる。
起動したwslttyは元のWSLのコンソール画面と同じように見えるし、意外と元のコンソール画面と同じように使うこともできる。しかし下記の通り、機能は豊富だ。
wsltty(mintty)の詳しい使い方はここでは省略するが、標準のコンソールと比較した場合の機能や操作方法の違いなどを次にまとめておく。
処理/機能 | 操作方法 |
---|---|
画面スクロール | [Shift]を押しながら[↑][↓]や[Page Up][Page Down][Home][End]/ [Shift]を押しながらマウスホイール/ オプション設定で、[Page Up][Page Down]キー単独でのスクロールも可能 |
新ウィンドウ | [Alt]+[F12](同サイズの新ウィンドウを開く)/ [Shift]+[Alt]+[F12](デフォルトサイズの新ウィンドウを開く) |
ウィンドウ(セッション)切り替え | [Ctrl]+[Tab]/ [Ctrl]+右クリックでメニューから選択 |
ウィンドウドラッグ | [Ctrl]+[Alt]を押しながらマウスドラッグ |
フォントサイズの拡大/縮小 | [Ctrl]を押しながらマウスホイール/ [Ctrl]を押しながら[+]か[-]か[0](リセット) |
URLなどを開く | [Ctrl]を押しながらマウス移動でテキストを選択してクリック |
コピー&貼り付け | マウスで範囲選択後、[Ctrl]+[Insert]でコピー、[Shift]+[Insert]で貼り付け/ オプション設定変更で[Ctrl]+[Shift]+[V]で貼り付けなどに変更可能 |
HTML形式での画面ダンプ | [Ctrl]+右クリック後、[HTML画面ダンプ]を選択 |
検索 | [Alt]+[F3]。一致部分を全て表示させながらスクロールなどが可能 |
フリップスクリーン | [Alt]+[F12]。例えばエディタやページャなどが全画面で表示中であっても、その起動シェルの画面の状態を確認可能(エディタやページャは、起動シェル画面とは別の「alternate screen」に描画しているため、内容が保持されている) |
リセット | [Alt]+[F8]。表示が乱れたり、固まってしまったりした場合に、端末の状態を強制的にリセットする |
コンテキストメニュー | マウスを右クリック。[Ctrl]+右クリックで拡張コンテキストメニュー |
オプション設定 | マウスを右クリック後、[Options/オプション]メニューを選択 |
wsltty(mintty)の操作方法(主なもののみ) |
wslttyの詳細な機能や設定項目の説明、設定ファイルの使い方などについては、以下のページを参照していただきたい。
- 「minttyのmanページ」[英語]
wslttyのオプション設定
デフォルトではコンテキストメニューやオプション画面が英語表示になっているが、これらはオプション画面設定を変更すればカスタマイズできる。以下に、主なオプション画面とその説明をまとめておく(UIは「日本語(ja)」に変更している)。
オプション−キー設定
ここではキー設定を行う。デフォルトのWSLのコンソールのように、[Ctrl]+[Shift]+[V]などで貼り付けを行いたければ、[Ctrl+Shift+文字ショートカット]のチェックボックスをオンにする。
Copyright© Digital Advantage Corp. All Rights Reserved.