Xfceデスクトップ環境とXRDPをインストールして、Xfceデスクトップ環境に XRDPで接続する手順を記載します。
Table of Contents
1 Xfceデスクトップ環境のインストール
こちらの手順でXfceデスクトップ環境をインストールします。
2 XRDPのインストール
XRDPをインストールします。
$ sudo apt install -y xrdp
$ sudo sed -e 's/^new_cursors=true/new_cursors=false/g' \
-i /etc/xrdp/xrdp.ini
$ sudo systemctl enable xrdp
$ sudo systemctl restart xrdp
3 ~/.xsessionと~/.xsessionrcの作成
接続するユーザのホームディレクトリに.xsessionと.xsessionrcを作成します。
$ echo "xfce4-session" > ~/.xsession
$ D=/usr/share/xfce4:/usr/share/xubuntu:/usr/local/share
$ D=${D}:/usr/share:/var/lib/snapd/desktop:/usr/share
$ cat <<EOF > ~/.xsessionrc
export XDG_SESSION_DESKTOP=xubuntu
export XDG_DATA_DIRS=${D}
export XDG_CONFIG_DIRS=/etc/xdg/xdg-xubuntu:/etc/xdg:/etc/xdg
EOF
4 XRDPでlight-lockerの無効化
XRDPのようにlightdmを実行しない場合、light-lockerで以下のエラーが発生します。これはlightdmでは設定されるXDG_SESSION_PATHがXRDPの場合は設定されない為です。XDG_SESSION_PATHは動的に決まる値なので決め打ちすることができません。
** (light-locker:2769): ERROR **: 08:09:59.625: Environment variable XDG_SESSION_PATH not set. Is LightDM running?
そこでlight-lockerのラッパースクリプトを作成し、ラッパースクリプトで XDG_SESSION_PATHが設定されているかいないかを判定します。
$ sudo cp /usr/bin/light-locker /usr/bin/light-locker.orig
$ cat <<EOF | sudo tee /usr/bin/light-locker
#!/bin/sh
# The light-locker uses XDG_SESSION_PATH provided by lightdm.
if [ ! -z "\${XDG_SESSION_PATH}" ]; then
/usr/bin/light-locker.orig
else
# Disable light-locker in XRDP.
true
fi
EOF
$ sudo chmod a+x /usr/bin/light-locker
