前回、Unityリモートデスクトップ環境を構築したが、
- 管理者アカウントではUnityデスクトップが表示されない
- 処理が重い
といった欠点があった。そこで、
他のリモートデスクトップマネージャを試してみる。
MATEデスクトップ環境の構築
「メイト」ではなく「
マテ」と呼ぶらしい。
このサイトを参考にしながらMATEデスクトップ環境を構築した。
$ sudo apt install -y ubuntu-mate-desktop
$ sudo reboot
インストールはこれでおしまい。
ローカルマシンのログイン画面はMATEに変わった。ところがログインするとデスクトップはもとのUnityのままだった。リモートデスクトップでhinfoでログインしても前と変わらない。
次に、/etc/xrdp/startwm.shの中身を次のように変更した。
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
mate-session
するとローカルマシンのログイン後のデスクトップは相変わらずUnityのままだが、リモートデスクトップ接続するとデスクトップ画面がMATEに変わった(図1)。
 |
図1 MATEデスクトップ画面 |
今回は、リモートデスクトップで接続すると、管理者アカウントでも、作成したアカウントでも、同じようにデスクトップはMATEになった。
リモートデスクトップはXRDPがやっているので /etc/xrdp/startwm.sh を変更すればデスクトップが変わるのはわかるが、ローカルマシンのデスクトップ自体を変更するのはどうすればよいのだろう?
LXDEデスクトップ環境の構築
次はLXDEデスクトップ環境の構築を行う。これもMATEと同様に動作が軽いデスクトップとのことだ。
このサイトにしたがってLXDEのデスクトップ環境を構築した。
$ sudo apt install -y lubuntu-desktop
$ sudo reboot
再起動後、ローカルマシンのログイン画面を見るとMATEのままだった。つぎに、/etc/xrdp/startwm.shの中身を次のように書き換えてXRDPを再起動した。
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
lxsession -s LXDE -e LXDE
そして、リモートデスクトップ接続すると次のようなデスクトップが表示された。
 |
図2 LXDEデスクトップ画面 |
管理者アカウントでも、作成したアカウントでもちゃんとLXDEデスクトップは表示される。非常に軽い。また、ローカルマシンのデスクトップはUnityのままであることはMATEと同じだった。
Xfce デスクトップ環境の構築
続いてXfceデスクトップ環境を
このサイトにしたがって構築する。
$ sudo apt install -y xubuntu-desktop
$ sudo reboot
次に、/etc/xrdp/startwm.shの中身を次のように書き換える。
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
xfce4-session
そして、リモートデスクトップ接続すると次のようなデスクトップが表示された。
 |
図3 xfce4デスクトップ画面 |
XRDPは再起動しなくとも、/etc/xrdp/startwm.shを書き換えるとリアルタイムで反映されるようだ。
Cinnamonデスクトップ環境の構築
Cinnamonデスクトップ環境を
このサイトにしたがって行う。CinnamonデスクトップはUnity同様にTigerVNCを使うようだ。
まず、次のコマンドでCinnamonをインストールする。
$ sudo apt install -y cinnamon-desktop-environment
$ sudo reboot
/etc/xrdp/startwm.shの中身を下記のように書き換えてリモートデスクトップ接続する。
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
cinnamon-session
あリモートデスクトップ接続すると次のような画面が表示される。
 |
図4 cinnamonデスクトップ画面 |
ウインドウマネージャー設定ファイル
ウィンドウマネージャー設定ファイルは/etc/xrdp/にある(下図)。
 |
図5 /etc/xrdp/startwm.sh |
startwm.sh の拡張子がウィンドウマネージャの種類を表している。例えば、LXDEデスクトップにしたければ次のようにしてstartwm.shを書き換えればよい。
$ cd /etc/xrdp/
$ sudo cp startwm.sh.LXDE startwm.sh
ユーザごとにウィンドウマネージャーを変更するには
/etc/xrdp/startwm.shは全ユーザのデフォルトウィンドウマネージャの設定スクリプトである。ユーザ個々にウィンドウマネージャを変える場合は、各ユーザのホームディレクトリ内にstartwm.shを作成し、その中に起動したいウィンドウマネージャのスクリプトを記述しておけばよい。
ウィンドwマネージャ |
startwm.sh |
MATE |
mate-session |
Xfce4 |
xfce4-session |
LXDE |
lxsession -s LXDE -e LXDE |
Cinnamon |
cinnamon-session |
Unity |
/usr/lib/gnome-session/gnome-session-binary --session=ubuntu &
/usr/lib/x86_64-linux-gnu/unity/unity-panel-service &
/usr/lib/unity-settings-daemon/unity-settings-daemon &
for indicator in /usr/lib/x86_64-linux-gnu/indicator-*; do
basename=`basename ${indicator}`
dirname=`dirname ${indicator}`
service=${dirname}/${basename}/${basename}-service
${service} &
done
unity |
なお、startwm.shの先頭には下記のスクリプトを記述しておかないとメニュー等が日本語表示にならない。
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
ここで /etc/default/locale というファイルの内容は
LANG="ja_JP.UTF-8"
となっており、if文でこのファイルが読み取り可能か(-rオプション)テストし、読み取り可能であればそれをカレントシェル内で実行し、環境変数 LANG と LANGUAGE を export している。これで、環境変数 LANG に ja_JP.UTF-8 が設定されるので、ウィンドウマネージャは日本語で表示される。
ログイン画面の切り替え
様々なウィンドウマネージャをインストールしたが、ログイン画面はMATEのままである。これを
他のディスプレイマネージャに変えるにはdpkg-reconfigureを使うらしい。
$ sudo dpkg-reconfigure gdm3
ところが、これを実行すると
/usr/sbin/dpkg-reconfigure: gdm3 はインストールされていません
というエラーメッセージが出る。
ログイン画面を元に戻すにはどうすればよいのだろう。
リモートデスクトップで日本語入力
Ubuntuには
入力メソッドとして
Fcitxと
iBusが最初から入っており、日本語入力システム(IME)としてMozcが入っている。ところが、Ubuntuの標準入力メソッドはFcitx+Mozcになっており、iBus+Mozcを使うには別途パッケージibus-mozcのインストールおよびキーボード入力に使うIMEシステムの変更(デフォルトはFcitx)が必要になる。
Ubuntuをインストールしているサーバを直接操作する場合は Fcitx+Mozcの組み合わせで日本語入力を行うことができるが(その場合でも入力メソッドの設定は必要)、リモートデスクトップ経由だと
iBus+Mozcの組み合わせでなければ動かない。
そこで、ここではリモートデスクトップでiBus+Mozcで日本語入力する設定について説明する。リモートデスクトップとしてMATEを想定しているが、他のウィンドウマネージャでもそれぞれに応じた操作方法を読み替えれば同様にできるであろう。
キーボード入力に使うIMEシステムの変更
まず、システムのアップデートを行い、終わったら再起動する。
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y
sudo reboot
次にiBus+Mozcの組み合わせで利用できるようにibus-mozcパッケージをインストールする。
sudo apt install -y ibus-mozc
パッケージのインストールが終わったら、リモートデスクトップでUbuntuサーバに接続する。このとき、リモートデスクトップのウィンドウマネージャはMATEを利用する。
図6に示すように、メニューバーから[システム]→[設定]→[ルック&フィール]→[言語サポート]を選択する。
 |
図6 「言語サポート」を起動する | |
すると、図7に示す画面が出るので、[キーボード入力に使うIMEシステム]を「iBus」に設定して[閉じる]をクリックする。
 |
図7 言語サポート |
次にiBusの設定を行う。メニューバーから[システム]→[設定]→[その他]→[iBusの設定]を選択する。「キーボードインプットメソッド(iBusデーモン)が起動していません。起動しますか?」というメッセージが出たら「はい」をクリックする。「iBusはすでに起動しています!・・・」というメッセージが出たらそのまま「OK」をクリックする。
すると、[iBusの設定]画面が表示されるので「インプットメソッド」タブをクリックする(図8)。
 |
図8 iBus設定画面 |
[追加]ボタンを押し、[日本語]→[Mozc]と選択して[追加]ボタンをクリックする。これで、インプットメソッドに「日本語-Mozc」が追加される。
日本語入力
日本語入力を確認するためにデスクトップの何もないところをマウスで右クリックして[ドキュメントの生成]→[空のファイル]を選択する。
 |
図9 ドキュメントの生成 |
作成されたファイルを開いてカーソルのある位置でマウスの右ボタンをクリックして[入力メソッド]→[iBus(Intelligent Input Bus)]を選択する。これで日本語の入力が可能になる。入力の切り替えは[半角/全角]ボタンで行う。
 |
図10 入力メソッドの選択 |
問題
この方法でエディタや端末から日本語入力できるようになったが、何故かブラウザから入力できない。入力の切り替えを行って日本語-Mozc状態になっていても半角文字しか入力できない。これは直接Ubuntuサーバを操作する場合には起きないので、XRDPの問題なのかもしれない。