私のように、デスクトップ型PCを買ってしまった人は、一度はこの問題に直面してしまうのではないだろううか。それは、「テレビも見たいけど、パソコンでしなければいけないことがある。」である。この問題は、パソコンをおいた部屋にテレビがあるか、テレビのあるリビングにパソコンがあれば問題ないが、私のように、パソコンとテレビを別々の部屋においてしまった人は、この問題はいささか重要なものであろう。
そこで、VNCを利用して、Lubuntu 18.04をリモートで操作してみることにした。リモートで操作できれば、パソコンの目の前にいなくても、パソコンを操作することができるはずだ。
リモート接続に関する解説は検索すれば多くがヒットするものの、それらはほとんど、Ubuntuのものであり、GNOMEの設定を利用したものが多く、Lubuntuで実現できない解説が多く、結果手探りという形になってしまった。よって、私が手探りで得たやり方を、ここに書き記しておくことにする。
#そもそも VNC ってなんだろう?
「Virtual Network Computing」という、リモートデスクトップソフトのことらしい。詳しい説明を書くと量が多そうなので、気になる人は、検索してみてほしい。とりあえず、Wikipediaのページを貼っておくことにする。
・Wikipedia "Virtual Network Computing"
#まずはセットアップ
今回は、「vnc4server」パッケージを利用することにした。なぜこのパッケージかというと、他に比べて複雑な設定がなく、比較的簡単に利用できる(と、個人的に思った)からだ。
##リポジトリの追加
まず、Lubuntuの、「ソフトウェアとアップデート」から、「universe」リポジトリからのダウンロードを有効にする必要がある。
メニューの、「設定」の、「ソフトウェアとアップデート」を開き、「コミュニティによってメンテナンスされるフリー/オープンソースソフトウェア (universe)」にチェックを入れ、「終了」を押そう。
「利用可能なソフトウェアの情報が古くなっています。」と表示されたら、「再読込」で、更新する。
##インストールしてみる
では、リポジトリの設定が終わったので、パッケージ「vnc4server」をインストールしてみる。
インストールはとても簡単だ。aptですぐにインストールできる。
sudo apt install vnc4server
これだけでインストールは完了。
#早速使ってみる。
ここからは、接続される側を「サーバ」、接続する側を「クライアント」と呼ぶことにする。
##サーバ側の設定
インストールが完了したら、以下のコマンドを入力するだけで実行できる。
vncserver :1
このコマンドを実行すると、パスワード設定することになる。パスワードを求められるので、6文字以上、8文字以下のパスワードを設定する。
これだけ。あとは、サーバ側のIPアドレスをメモしておく。IPアドレスを調べるには、ipコマンドを利用するのが一般的だが、Lubuntuの場合、パネルの右下の、接続アイコンをクリックし、「接続情報」を押せば、簡単に見ることが出来る。
##クライアント側の設定
クライアントソフトは、とりあえずなんでもよい。ソフトによって、設定方法が異なるので、ここではクライアント側の設定は割愛させていただくことにする。
ただ、多くのクライアントソフトは、IPアドレスと、ポート番号、そして、パスワードを入力するようになっているはずだ。IPアドレスには、先程調べたものを入力する。また、ポート番号には、「5901」を指定しよう。そして、先程決めたパスワードを入力する。
#では、使ってみよう。
上記の手順を実行し、クライアント側で接続すると...
このように、灰色の背景に、マウスカーソルと、「VNC config」というウィンドウがある画面が表示される。
どうやら、サーバー側の画面が複製されるわけではなく、クライアントはクライアントで別の画面が用意されるようだ。同じユーザーに、別々の画面からログインするといった具合であろうか。(違うかもしれない、よくはわからないが。)
##パネルを起動
この一見何もなさそうな状態からどうするのかというと、実は、もうすでに、OpenBoxウィンドウマネージャーが起動しており、ある程度のことはできる。ただし、ちょっぴり使いづらいので、パネルを起動して、アプリの起動や切り替えが楽になるようにしてみる。
画面上の適当な場所を右クリックすると、
このように、アプリケーションを起動できるメニューが出現する。そこで、一番上の「Terminal emulator」を選択する。すると、デフォルトの端末が起動するので、
lxpanel
このように、パネルを起動することができた。
#使い終わったら
使い終わったら、クライアント側で切断したあと、サーバ側で端末を開き、以下のコマンドを入力する。
vncserver -kill :1
これで、vncserverは停止される。
#次回以降使うとき
次回以降は、また同じような手順で接続すればよい。ただし、パスワードは再設定する必要はないので、vncserver :1と入力するだけですぐにサーバは起動する。
#セキュリティのためのヒント
##サーバ側の画面をロックしておく
リモート接続している間は、サーバー側の画面は使わないだろう。よって、サーバ側の画面をロックしておくことをおすすめする。サーバ側をロックしてしまっても、クライアント側に表示されている画面はロックされず、動いたままなのでそのまま利用できる。サーバ側で、メニューから、「ログアウト」を押し、「スクリーンのロック」で画面ロックしておこう。
##たまにパスワードを変える
パスワードはあとからでも変更可能。
vncpasswd
これを入力すると、パスワードを尋ねられるので、再度設定すれば変更完了だ。
#おまけ
##画面サイズを変える
デフォルトのままでは、画面の比率は4:3であり、また、画面も小さめであるため、狭く感じるだろう。よって、画面サイズを適切なものに変更することができる。
###起動時に指定する
最も簡単な方法は、起動時に、「-geometry」オプションを指定することだ。このオプションは、以下のように使う
vncserver -geometry 1920x1080 :1
このようにすると、画面サイズを1920 x 1080に設定可能だ。
ちなみに、「1920x1080」の、「x」は、アルファベットの「エックス」である。
ただし、この方法では、毎回オプションを設定する必要があるため、少々面倒だ。
よって、一時的ではなく、恒久的に変更する方法もある。
###デフォルトの起動時の画質を変更する
まず、既存のvncserverの動作を終了しておく。
root権限で、テキストエディタを開き、「/usr/bin/vncserver」を開く。このファイルはPerlで記述されており、標準的なテキストエディタで簡単に編集することが可能だ。
ファイルを開くと
$geometry = "1024x768"
のような行がある。その行を、例えば、横1280、縦720のサイズにする場合、以下のように書き換える。
$geometry = "1280x720"
これで、再度サーバをスタートさせ、接続すれば、画面サイズが変わっているはず。
##日本語入力をする
まず、ログイン中であれば、一旦ログアウトする。
Lubuntuでログインする前に、セッションとして、Lubuntuではなく、Openboxを指定する。ログイン画面上部のバーに、Lubuntuのロゴのマークがあると思うが、あれをクリックすると、選択肢が出てくる。あの中から、「Openbox」を選択してからログインする。しばらくすると、何もないデスクトップが表示されるので、右クリックして、「Terminal emulator」を押して、端末を起動したら、今までと同じように、vncserverをスタートさせる。
クライアント側において、まず、今まで通り、端末エミュレータを起動したら、
lxpanel &
fcitx
を行う。これにより、半角/全角を押すか、サポートされていない環境では、パネルのトレイに常駐しているFcitxアイコンをクリックすることで、日本語入力が可能である。
ちなみに、実は、Fcitxは、Flatpakアプリケーションとの相性が悪く、一部のFlatpakアプリケーションでは、Fcitxによる日本語入力ができない。そのため、IBusが利用できないかやってみたものの、VNC上では、残念ながらIBusは起動はするも、機能しなかった。
#最後に
これを利用すれば、パソコンの前にいなくても、パソコンを操作できるようになる。スマートフォンや、ノートパソコンなどで接続すれば家中色んな場所で一つのPCを操作できる。ちょっと工夫が必要かもしれないが、これらは強力なツールとなるだろう。