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」)
この連載の記事
-
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる - この連載の一覧へ