WSLg上のGNOMEデスクトップへリモートデスクトップ接続する

ALL
スポンサーリンク
スポンサーリンク

はじめに

GNOMEデスクトップをWindowsのいちウィンドウとして動かす方法を WSLgでUbuntu24.04のGNOMEデスクトップを動かす – パソコン鳥のブログ で紹介しました。
本記事では、WSL上のUbuntuへリモートデスクトップ接続することによって、GNOMEデスクトップ画面を表示する方法を説明します。

リモートデスクトップ接続では、WindowsのいちウィンドウとしてGNOMEデスクトップを表示する際に出来なかった、フルスクリーン表示ができるようになります。

なお、本記事での設定で、リモートデスクトップ接続でも、GNOMEデスクトップをWindowsのいちウィンドウとして動かす方法、どちらも利用できるようになります。

設定

次の記事の内容で、GNOMEデスクトップをWindowsのいちウィンドウとして動かす方法を説明しています。
まず、その設定を行ってください。

WSLgでUbuntu24.04のGNOMEデスクトップを動かす – パソコン鳥のブログ

上記の設定が終わったら、次を実行して、xrdp をインストール・設定します。

sudo apt update
sudo apt -y install xrdp
sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/g' /etc/gdm3/custom.conf
sudo systemctl enable xrdp
sudo systemctl restart xrdp

~/exec_Xsession.sh の先頭に次の行を追加します。

/mnt/c/Windows/System32/wsl.exe -d $WSL_DISTRO_NAME -u root -- killall gnome-remote-desktop-daemon 2>/dev/null
/mnt/c/Windows/System32/wsl.exe -d $WSL_DISTRO_NAME -u root -- killall gnome-session-binary 2>/dev/null

~/exec_Xsession.sh の最後に次の行を追加します

systemctl --user stop clipboard-sync

~/clipboard-sync.sh を次の内容で作成します。

#!/bin/sh
if [ -z "${XRDP_SOCKET_PATH}" ]; then
    systemctl --user start clipboard-sync
fi

実行権を付けます。

chmod +x ~/clipboard-sync.sh

次を実行します。

gnome-session-properties

次のような一覧が出るので、WSLgでUbuntu24.04のGNOMEデスクトップを動かす – パソコン鳥のブログ の「Windowsとのクリップボード連携(テキストのコピー・ペースト)」の手順で追加した項目を選択して Remove を押します。
特に確認も出ず、一覧から消えます。

どれを Remove すべきかがわからない場合は、項目を選択して [Edit] を押して出た画面で、Command: が systemctl –user enable –now clipboard-sync となっている項目です。

続けて、[Add] を押します。

次の画面の Command の箇所で、[Browse…]ボタンを押し、先ほど作成した clipboard-sync.sh を指定します。
なお、直接入力する場合は、~/clipboard-sync.sh とせずに /home/user/clipboard-sync.sh のようにフルパスで指定してください。
Name , Comment の箇所は任意の内容を入力し、[Add]ボタンを押します。

元の画面に戻るので、[Close]を押します。

次のコマンドを実行します。

systemctl --user disable clipboard-sync

WSLのターミナルから exit します。

Windowsのコマンドプロンプトで、次を実行します。

wsl.exe -t Ubuntu-24.04

これで設定は完了です。

接続方法

Windowsのスタートメニューから Ubuntu を起動します。

次にWindowsのスタートメニューの「Windows アクセサリ」から、「リモート デスクトップ接続」を起動します。

“コンピューター” の箇所に localhost:3390 と入れて、[接続] を押します。
この時 127.0.0.1:3390 と入れた場合は、リモートデスクトップで接続できないので注意してください。

次のような画面が出るので、Ubuntu のユーザー名とパスワードを入れて、[OK] を押します。

すると、WSL上の Ubuntu に接続できます。

Winodwsとのクリップボード共有で、Windows-WSL上のUbuntu間でテキストやファイルのコピー・ペーストを行いたい場合は、リモートデスクトップ接続時に、下の画面で[オプションの表示]を押します。

タブが出てくるので、”ローカルリソース” を選択します。

“クリップボード” にチェックを入れ、[接続] を押します。これで、Windows-WSL上のUbuntu間でテキストやファイルのコピー・ペーストができます。

トラブルシューティング

リモートデスクトップ接続で Oh no! Something has gone wrong になる

リモートデスクトップ接続後に、次の画面になる場合です。

[Log Out] を押すとしばらくしてリモートデスクトップの画面が閉じられます。

その後、WSLのターミナルから exit し、Windowsのコマンドプロンプトで次を実行してください。

wsl --shutdown

再度 Ubuntu を起動した後に、リモートデスクトップ接続してみてください。

リモートデスクトップしても画面が真っ暗なままになる

WSLgでUbuntu24.04のGNOMEデスクトップを動かす – パソコン鳥のブログ で設定した exec_Xsession.sh でGNOMEデスクトップを表示している場合は、そのウィンドウを閉じた後にリモートデスクトップ接続してください。
画面が見えるようになります。

exec_Xsession.sh 実行でGNOMEデスクトップが出ない

exec_Xsession.sh 実行でGNOMEデスクトップが出なかったり、exec_Xsession.sh がすぐ終了してしまう場合は、リモートデスクトップでWSL上のUbuntuに接続していないか確認してください。
接続していた場合は、リモートデスクトップを終了後に、exec_Xsession.sh を実行してください。

それでもダメな場合は、WSLのターミナルから exit し、Windowsのコマンドプロンプトで次を実行してください。

wsl --shutdown

再度 Ubuntu を起動した後に、exec_Xsession.sh を実行してみてください。

参考

WSL2を使ってWindowsにUbuntu Desktopをインストールする | フジミヤログ
【Ubuntu24.04】Windows10からRDPでUbuntuに接続する – 思考実験とD.I.Y.

コメント