WSL2でLinuxデスクトップ – XFCE4とEnlightenmentをXRDP経由で使う方法

みなさん、こんにちは。

WSL2 (Windows Subsystem for Linux 2) が登場して以来、Windows上でLinux環境を手軽に使えるようになりました。特にWSLgのおかげで、LinuxのGUIアプリもWindowsから直接起動できるようになり、非常に便利ですよね。もし単にLinuxのデスクトップアプリを使いたいだけなら、普通にWSL2のシェルからaptでインストールすればWindowsのスタートメニューに表示されるので、それが一番手軽です。

しかし、「やっぱりLinuxネイティブのデスクトップ環境をフルで体験したい!」と思う方もいるのではないでしょうか?

そんな時は、WSL2の中にXサーバーを含んだデスクトップ環境を構築し、XRDP(リモートデスクトッププロトコル)を使ってWindowsから接続することで実現できます。

今回は、WSL2にXFCE4やEnlightenmentといった軽量デスクトップ環境をインストールし、XRDP経由でWindowsからリモート接続する手順をご紹介します。

 


 

1. WSL2環境の準備

 

ここからは、WSL2にUbuntu22.04をインストールしている前提で話を進めます。まずは、WSL2の環境を最新の状態に保ちましょう。これにより、安定した動作が期待できます。

sudo apt update && sudo apt upgrade

 


 

2. デスクトップ環境のインストール (XFCE4)

 

今回は、動作の軽さを重視して XFCE4 を選びます。

sudo apt install xfce4-goodies xfce4

このコマンドで、XFCE4のデスクトップ環境一式がインストールされます。

日本語環境のインストール

さらに、日本語入力に対応させるために、ibus-mozcをインストールしておきましょう。

sudo apt install ibus-mozc

 


 

3. リモートデスクトップサーバーのインストール

 

次に、Windowsからリモート接続するためのXRDPサーバーと、そのXorg対応パッケージをインストールします。

sudo apt install xrdp xorgxrdp

 


 

4. XRDPの設定

 

XRDPがデスクトップ環境を正しく起動できるように、設定ファイルを編集します。

sudo vi /etc/xrdp/startwm.sh

ファイルの最後の2行をコメントアウトします。

#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession

以下の行を追記します。
特にunset DBUS_SESSION_BUS_ADDRESSunset XDG_RUNTIME_DIRは、WSLgとの環境変数の競合を避け、XFCE4がXRDPセッション内で正常に起動するために重要です。

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
ibus-daemon --daemonize --xim &
exec startxfce4

 


 

5. Windowsからの接続

 

設定が完了したら、いよいよWindowsからリモートデスクトップで接続してみましょう。

Windowsのリモートデスクトップ接続アプリを起動し、コンピューター名に localhost:3390 を指定して接続します。

正常に接続できると、XRDPのログイン画面が表示されます。ここで「session」に Xorg、「username」と「password」にWSL2にログインする際のユーザー名とパスワードを入力して「OK」をクリックすると、XFCE4のデスクトップ画面が表示されるはずです。

XRDPログイン画面
XRDPログイン画面

 


 

6. Enlightenmentの使用 (オプション)

 

XFCE4の代わりに、さらに軽量なデスクトップ環境である Enlightenment を使用することもできます。

インストール

sudo apt install enlightenment

Ubuntu 22.04以降を使っていれば、Enlightenmentのバージョン25 (e25) がインストールされます。

XRDP設定の変更

Enlightenmentを使う場合は、startwm.sh を変更します。

export XMODIFIERS=@im=ibus のすぐ下に、IBusを有効にするための一行を追加します。この行がないと日本語入力ができません。

export DefaultIMModule=ibus

startwm.sh の最終行を exec startxfce4 の代わりに exec enlightenment_start に変更します。

exec enlightenment_start

これらの設定で、Enlightenmentが起動し、日本語入力ができるはずです。

Enlightenmentが起動
Enlightenmentが起動

 


 

注意点 – 残念ながら「音は出ません」

 

これまで試行錯誤してきた中で明らかになった重要な点があります。

WSL2にインストールしたXRDP経由のリモートデスクトップ環境では、現在のところ音声が出力されません。

その理由は、XRDPでデスクトップ環境(XFCE4やEnlightenment)を起動するために、WSLgが提供するD-BusやXDG_RUNTIME_DIRといった環境変数をunsetする必要があるためです。これらの環境変数が解除されてしまうと、WSLgが提供するPulseAudioサーバーへの接続パスが利用できなくなり、WSL2からWindows側の音声システムへ音を鳴らすことができないのです。

WSLgを介して音声を出力できるのは、基本的にWSLgの仕組みによって直接起動されたLinux GUIアプリケーションのみとなりますのでご注意ください。

 


 

まとめ

 

WSL2上でXRDPを使ってLinuxのネイティブデスクトップ環境を体験するのは非常に魅力的です。残念ながら音声再生には課題が残りますが、それでもWindowsから直接GUI操作できるLinuxデスクトップは、開発や学習において非常に役立つでしょう。

みなさんも、ぜひWSL2で自分だけのLinuxネイティブデスクトップ環境を構築してみてください。

 

本日も最後までお読みいただきありがとうございました。

それでは、よいWSL2ライフを!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール