* 作業端末はWindowsを使わざるを得ない。
* 開発物の連携対象がリモートにあり、開発環境は近い場所に置きたい。
* 開発環境はLinuxじゃないと無理。
* どうしてもXが起動したい(軟弱
* 接続先の回線が細い。
→ xrdp & LXDE
xrdpを使うのは、Windows側に特別なクライアントが必要ないことと、X接続やVNC、Spiceに比べて操作が軽快です。
LXDEはいわずと知れた軽量デスクトップです。xrdp経由だとリッチなエフェクトを備えたGNOME3はオーバースペックすぎます。
まず必要なソフトウェアをインストールしますが全部標準リポジトリに含まれていますので簡単です。
$ sudo yum install xrdp $ LANG=C yum groupinstall "LXDE Desktop"
xrdpには日本語キーマップファイルが含まれていませんので このリンク先 からkm-xxxxx.ini ファイルを取得します。
取得したファイルを以下の名前で /etc/xrdp 以下へコピーしておきます(同じファイルを違う名前で4つ配置します
km-0411.ini km-e0010411.ini km-e0200411.ini km-e0210411.ini
xrdpサービスを起動しつつ、3389ポートを開けます。
$ sudo systemctl start xrdp.service $ sudo systemctl enable xrdp.service $ sudo firewall-cmd --add-port=3389/tcp --permanent
これでWindowsからリモートデスクトップで接続する事が出来るようになりました。
しかしこのままではGNOME3が起動してしまいます。
検索してみると /etc/xrdp/startwm.sh を次のように書きかえる、というのが見つかりますが、Fedoraの場合上手くいきませんでした。
SESSIONS="gnome-session blackbox fluxbox startxfce4 startkde xterm" ↓ SESSIONS="lxsession gnome-session blackbox fluxbox startxfce4 startkde xterm"
原因は、startvm.sh → (ファイルがあれば)/etc/X11/xinit/xinitrc → (ファイルがあれば)/etc/X11/xinit/Xclients という順序でファイルが呼び出されていきますが、最後の /etc/X11/xinit/Xclients が呼ばれると、どんな設定になっていても GNOME3 or KDE のどちらかが起動するようになっています。
このファイルを書き換えてもいいのですが、パッケージに含まれるファイルを編集してしまうとアップデート時の対応が面倒になるので、今回は以下で対処しました。
$ cp /etc/lxdm/Xsession ~/.Xclients
/etc/lxdm/Xsession にはLXDEを起動するためのスクリプトが含まれており、本来はコンソールのログインマネージャから呼ばれます。これをホームディレクトリに、.Xclients という名前でコピーしておくと、 /etc/X11/xinit/xinitrc の中からこのスクリプトが呼び出されるようになり、LXDEが起動できるようになります。
やめたいときはこのファイルを削除するればOKです。
(参考)km-xxxx の中身