WSL2でのGUIアプリ対応がプレビュー版で開始 実際に動かしてみた

WSL2でのGUIアプリ対応がプレビュー版で開始 実際に動かしてみた

  • ASCII.jp
  • 更新日:2021/05/02

Windows 10 プレビュービルド21364から、WSL2でのGUIアプリケーション対応がなされた。現時点ではプレビュー版の段階なので、必ずしも完成というわけではないが、Windows Insider ProgramのDev Channelに参加していれば、すぐにでも試すことができる。

No image

昨年発表されたWSL2のGUIアプリケーション対応だが、4月に公開されたプレビュー版でようやく利用できるようになった

昨年に公表されていたWSL2でのGUIアプリ対応

WSL2でのGUIアプリケーション対応は、「WSLg」と呼ばれているようだ。WSL2のGUI対応に関しては、昨年のオンラインイベントでの発表などを元に解説している。

●LinuxのGUIアプリケーションに対応するWSL2https://ascii.jp/elem/000/004/040/4040474/●WSL2ではRDPでLinux GUIアプリのウィンドウを表示するhttps://ascii.jp/elem/000/004/041/4041422/

簡単に言えば、WSLのディストリビューションとは別に「システムディストリビューション」というコンテナのようなものが動いて、そこで実際の表示などをしている。そして、Linux側のGUIアプリケーションからは、通常のLinuxディストリビューションのようにX Window SystemやWaylandが動作しているように見える。

このシステムディストリビューションは、WSLディストリビューションとは分離されていて、後者側からは(もちろんWin32側からも)直接見ることができない。なお、Microsoftのブログによれば、このシステムディストリビューションは、Azureで使われている「CBL-Mariner」というLinuxディストリビューションの上に構築されているようだ。

これは、仮想マシン/コンテナーのクラスターを構築するAzure Stack HCIのLinux環境用に作られた、Microsoft独自のLinuxディストリビューションだ。CBLは「Common Base Linux」の略で、Marinerの意味は不明だが、多分Microsoftの本拠地がシアトルだからと見ている。昨年11月にオープンソース化され、GitHubで公開されている。

WSLgの仕組みに関しては、あらためて記事にしたいということで、まず今回はどんなものなのかをレポートすることにしよう。

WSL2にGUIアプリをインストールする

WSL2でGUIアプリを動作させるためには、

Windows 10 プレビュービルド21364 WDDM 2.9対応GPUドライバー 最新のWSL2用Linuxカーネル

が動作の条件になるようだが、筆者の環境では特に何もすることなく、WSL2でGUIアプリケーションのインストールができた。

GUIアプリのインストールは、通常のLinuxと同じく、ディストリビューション固有のパッケージ管理システムからする。あるいは、GUIアプリケーションの各デストリビューション向けのインストールパッケージを使ってもよい。とりあえず、懐かしいX Window System Ver.11のアプリ(xcalc、xclockなど)を動かしてみた。利用したディストリビューションはUbuntu-18.04なので、aptコマンドを使う。具体的には、

sudo apt install x11-utils

でX11の標準的なサンプルアプリケーションであるxcalcやxeyes、xlogoなどが起動できるようになる。なんだか、1980年代にタイムスリップした気分である。

No image

なつかしい風景? X11のアプリケーションを動作させてみたが、筆者的には気分はバブル時代という感じである

もう1つ、LibreOfficeをリポジトリからでなく、直接最新版をダウンロードしてインストールしてみた。LibreOfficeは、Ubuntu-18.04でも利用可能なDebianパッケージ(deb)形式でも配布されている。LibreOfficeのサイトから「Linux(64bit)(deb)」を選択してダウンロードすればよい。ダウンロードしたものはtar.Zファイルなので、解凍して適当なディレクトリーに展開し、そこにある*.debファイルをすべて「dpkg -i *.deb」コマンドでインストールすればよい。

WSL2のGUIアプリケーション対応では、アプリケーションのパッケージがLinuxデスクトップのアプリケーション登録に対応しているようなら、自動的にWindowsのスタートメニューに登録される。

No image

WSL2側でGUIアプリケーションをインストールすると、Linuxデスクトップへの管理情報を使い、Windowsのスタートメニューに自動的にアイコンが登録される。Linuxアプリケーションは右下にペンギンアイコンが付いている

たとえば、WSLディストリビューションのUbuntu-18.04なら、スタートメニューの「Ubuntu-18.04」フォルダーにインストールしたアプリケーションが並ぶ。このとき、アプリケーションアイコンの右下には、ペンギンのアイコンが付き、Linuxアプリケーションであることを示す。

実際に各種アプリを動かしてみた

ざっと動かしてみて気がついたことだが、Windows側でディスプレイの倍率設定が推奨値になっていない場合、かなり小さなウィンドウで表示されてしまう。

No image

残念ながらLinux GUIアプリケーションは、Windowsの高DPI対応ではなくディスプレイの倍率設定で表示サイズが変わってしまう

扱いとしては、Windows XP時代の高DPI非対応アプリケーションと同じである。アプリケーションの設定で大きなフォントなどを使うことは可能だが、今のところWSL2側で表示倍率の設定などはできなさそうだ。というのも、Linux GUIの表示関係のプログラムは、システムディストリビューション側にあり、WSLディストリビューションからは制御できそうにないからだ。このあたり、もう少し研究してみたい。

LibreOfficeにはWindows版もあるが、Linux版と同時に起動して、ドローイングデータをコピー&ペーストした。これだと、LibreDrawの図形データは、画像として貼り付けられてしまう。

No image

Windows版LibreOffice(写真左上)でコピーした図形(シェイプ)は、Linux版(右下)に貼り付けると画像(Image)になってしまう。シェイプは単独で選択できるのに、貼り付け先では全部が1つの画像になっている。これはクリップボード経由でネイティブのデータ形式を交換できないからだと考えられる

つまり、クリップボードのうち、標準的なデータ形式の貼り付けには対応しているものの、独自形式での貼り付けまでは変換してくれないようだ。逆に言えば、テキストや画像といった標準的な形式のデータであれば、クリップボードを介して、コピー&ペーストは可能である。最低限のところはカバーしているということか。

GUIアプリは動いたけど、さてどうする?

LinuxのGUIアプリに対応しているOSには、ChromebookのChromeOSがある。しかし、WindowsとChromebookでは大分事情が違う。Chromebookの場合、独自アプリを断念した状態で、現在主要アプリケーションはAndroidアプリとLinuxアプリしかない。このため、LibreOfficeのようなウィンドウ表示に対応したLinux GUIアプリケーションを動作させることには意味がある。

しかし、LinuxやUnixに起源を持つGUIアプリケーションのうち、主要なものは、Windowsへの移植も進められている。また、Windows側のアプリケーションは、WSL2側のファイルシステムにアクセスが可能である。そう考えると、同じGUIアプリケーションがWindows側で動作するなら、なにもわざわざわWSL2側で動かすこともないとも感じられる。

もちろん、Windowsには移植されていないGUIアプリケーションも多数ある。あるいは、企業などで開発した独自アプリケーションも存在するだろう。こうしたものを動かすことには意味がある。しかし、一般ユーザーから見れば、Linux GUIアプリケーションへの対応は、見た目の派手さとは裏腹にあまり必要がないのかもしれない。もっとも、WindowsでLinuxといった時点で一般ユーザーには興味のないことかもしれないが。

塩田紳二 編集● ASCII

この記事をお届けした
グノシーの最新ニュース情報を、

でも最新ニュース情報をお届けしています。

外部リンク

  • このエントリーをはてなブックマークに追加