前置き
本記事では、windowsに導入したWSL2をGUI化する方法について紹介しています。
WSL2を導入する方法については以下の記事を参照ください
【WSL2】WindowsにLinuxを入れてWindows Terminalで使うと便利すぎた件
XRDPサーバー(RDPプロトコルを使用してGUI操作をユーザに提供してくれるオープンソースのRDPサーバ)を使用して、GUI化できる。(現状はコマンドラインからの操作のみ)
※WSLのインストールや初期設定は完了している前提で進めます。
ubuntuにXRDPをインストール
WSL2で以下のコマンドを実行
sudo apt update && sudo apt -y upgrade
sudo apt -y install xfce4
sudo apt-get install xrdp
- パッケージのリポジトリから、パッケージの名前やバージョン、依存関係を取得し、有効でインストール可能なパッケージの一覧を更新
- 有効なパッケージ一覧を元に、アップデート可能なパッケージを更新
- xfce4(ウィンドウマネージャ、ファイルマネージャなどのソフトウェアをまとめたデスクトップ環境の1つ)をインストール
- xrdp(Windowsのリモートデスクトップ接続に用いられるRDP(Remote Desktop Protocol)のサーバ機能をLinux向けに提供するサーバソフトウェア)をインストール
ディスプレイマネージャーの選択
Ubuntuのディスプレイマネージャー(LinuxのGUI環境)はgdm3を選択する
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/b32d5fcddd5c41a587d2baf75a5fffd5/image.png)
xrdp.iniを編集
- xrdp.iniのバックアップをとる
- port番号を3389から3390に置換
- もろもろの画面のcolor設定
- セッション用のファイルを生成。xfce4-session はXfce 4用のセッションマネージャ。デスクトップの状況(開かれているアプリケーション、それらの場所)を保存してくれたりする
sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini
echo xfce4-session > ~/.xsession
startwm.shを編集
sudo vim /etc/xrdp/startwm.sh
- 最後の2行をコメントアウト
- 末尾にstartxfce4を追記
# コメントアウト
# test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# コメントアウト
# exec /bin/sh /etc/X11/Xsession
# 追加 startxfce4
RDPでWindowsから接続
ubuntuでXRDPを起動
sudo /etc/init.d/xrdp start
Powershellでwslを再起動
wsl --shutdown
RDPでlocalhost:3390に接続
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/51fab5570cf248d798180261a0e39add/image.png)
ログイン情報を入力してOK
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/c40dc0f166ed4ecf9bb94ef268ae9a3b/image.png)
接続完了
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/e06acce4653f48dbaf0106f534832621/image.png)
まとめ
いかがでしたでしょうか。本記事では、windowsに導入したWSL2をGUI化する方法について紹介しています。XRDPサーバー(RDPプロトコルを使用してGUI操作をユーザに提供してくれるオープンソースのRDPサーバ)を使用して、GUI化できる。(現状はコマンドラインからの操作のみ)