Windows 10のプレビュー版で始まったWSL2でのGUIアプリケーション対応(「WSL2でのGUIアプリ対応がプレビュー版で開始 実際に動かしてみた」)。今回はプレビュービルド21376で、WSL2のGUIアプリサポート機能である「WSLg」を動かしながら調べてみたいと思う。
なお、WSLgを動作させるにはプレビュー版のWindows 10をインストールする必要があるが、一回入れてしまうと、再インストールしない限り、通常版に戻ることはできないので注意されたい。
Linux GUIアプリのスタートメニューへの登録
WSL2側にGUIアプリケーションをインストールすると、自動的にホスト側(Win32側)のスタートメニューにGUIアプリのアイコンが登録され、ここからGUIアプリケーションを直接起動できるようになる。
この仕組みは、Win32側に用意された「wslg.exe」がポイントだ。簡単に言えば、このプログラムはwsl.exeのGUI版のようなもの。指定されたディストリビューションのGUIアプリを起動することができる。書式は以下のようになっているようだ。
wslg.exe [~] -d ディストリビューション アプリ起動コマンドライン
wslg.exeは、指定したディストリビューションのコマンドを起動する。最初の引数は起動するGUIアプリのワーキングディレクトリを指定するもののようだが、ユーザーのホームディレクトリを表す「~」もしくは、なにも指定しない場合しか動作しない。そもそも、このコマンドはエラーだと何もしないようだ。
最初の引数を何も指定しない場合は、「/mnt/c」(Win32側のC:/に相当)になる。現状、wslg.exeでは、ユーザーのホームディレクトリか、/mnt/c以外はアプリケーションのカレントディレクトリにはできないようだ。もっとも、ほとんどのGUIアプリケーションは、ファイル指定のダイアログが開くので、ほかのディレクトリを扱うことも可能。初期ディレクトリがこれしか選べないというだけのように思われる。
「アプリ起動コマンドライン」は、起動するプログラムのコマンドラインを指定する。実際には、bashのようなGUIアプリでないものも起動できるが、コンソールウィンドウを勝手には開いてくれないので、実質GUIアプリケーション用である。
WSLgでの日本語入力はLinux側の機能を使えば可能
現時点では、Linux GUIアプリに対してはWindows側のIMEが使えないが、Linux側にディストリビューションが提供する日本語入力拡張機能をインストールすれば可能だ。ただし、ちょっと注意が必要な点もある。WSLではその構造上、ログイン時にfcitxなどの日本語入力関連プログラムを起動する必要がある。
というのもWSLには、システム起動時のinitなどのシステムサービスを起動する仕組みがないからだ(その分、高速で起動する)。そこで日本語入力関連プログラムは、各ユーザーの.profileなどから起動するのだが、wslg.exeからGUIアプリケーションを起動した場合、通常のログインプロセスにならないため、.profileが実行されず日本語入力ができない。
あらかじめwsl.exeでコンソールを開いておけば問題ないのだが、GUIアプリという点では、ちょっとマヌケな感じがしないでもない。簡易な方法としては、スタートメニューに登録されたfcitxのショートカットをスタートメニューのスタートアップフォルダーにコピーするという方法がある。WSL側でfcitxをインストールすれば、自動的にスタートメニューに登録される。これをWindowsの起動時にスタートアップフォルダーによる自動起動で起動しておけば、日本語入力ができるようになる。
なお、以前、この連載で扱ったプレビュー版に搭載された/etc/wsl.confの[boot]セクションでは、fcitxを正しく起動させることはできなかった(「WSL2の2つの設定ファイル「.wslconfig」と「wsl.conf」)
![](/img/blank.gif)
この連載の記事
-
第441回
PC
WSL以前から40年以上続く、Windows(Microsoft)とUNIXとの関わり -
第440回
PC
そもそも「Copilot+ PC」とは何なのか? -
第439回
PC
今更more.comを使うのか!? Windowsでのページングを考える -
第438回
PC
Windowsはなぜ再起動が必要になるのか? -
第437回
PC
Windowsが今更(?)開発者に優しくなろうとしている!? 「Dev Home」は開発者にとって使い物になる? -
第436回
PC
Copilot+PCとともにWindowsのデバイス間連携に大きな変化!? Project ROMEの逆襲? -
第435回
PC
Windows Terminal Preview v1.21では、前回終了時のタブとその表示内容を復元できるように -
第434回
PC
AIの急速な導入がWindowsの予定を変えた!? Windows 12がすぐには出ない可能性 -
第433回
PC
Windows 11の2つのウィジェットを調べる -
第432回
PC
ウェブブラウザが切り開いたWindowsでのタブアプリケーション -
第431回
PC
Windows上でユニコードを「見る」方法 - この連載の一覧へ