2018年8月31日金曜日

リモートデスクトップ(その2)

前回、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には入力メソッドとしてFcitxiBusが最初から入っており、日本語入力システム(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の問題なのかもしれない。


0 件のコメント:

コメントを投稿

OpenDolphinとORCAの連携

第3章の章末問題 第2章の章末問題でやったカルテ例1をOpenDolphinに入力してORCAで診療報酬明細書を作成し、模範解答と比較しなさい。 を実際にやってみたのでまとめておく。 OpenDolphinで過去にさかのぼってカルテは作成できるか? その前に標題に...