外出時にノートPCで作業していると、1366×768の画面ではどうしても狭く感じます。・・・で、ぐぐってみたところ、AndroidをLinuxのサブディスプレイにする方法がある模様。どうやらVNCを使うようなので、やってみました。
環境は以下の通り。
- サーバ側はLinutMint18 x64
- クライアント側はNexus7(2012) + Android4.4.4
です。
作業にあたってはこちらのサイトを参考にさせていただきました。
1.Linux側(サーバ側)
Synapticでvnc4serverをインストールします。vnc4serverを使うのはSynapticにあるからです。
インストールしたらVNCサーバを起動します。
$ vncserver :1 You will require a password to access your desktops. Password: ******** Verify: ********
起動したら接続用のパスワードを設定します。パスワードは8文字までで、8文字を超える長さの場合には最初の8文字が使われるようです。
2.クライアント側(Android側)
クライアント側はGoogle PlayストアでVNC viewerをインストール。
起動したら、接続先として「Linux側のIPアドレス:5901」、接続名を適当な名前を設定します。接続するとパスワードを聞かれるので、vncserverを起動する際に設定したパスワードを入力します。ポート番号の5901は5900に:1の1を足して5901となっています。
3.x2vncのインストール
Synapticでx2vncをインストールする。インストールしたら以下のようにして起動する。
$ x2vnc -shared -west localhost:1 x2vnc: VNC server supports protocol version 3.8 (viewer 3.3) Password: ******** x2vnc: VNC authentication succeeded x2vnc: Desktop name "(ホスト名):1 (ユーザー名)" x2vnc: Connected to VNC server, using protocol version 3.3 x2vnc: VNC server default format: screen[0] pos=1003 Xinerama detected, x2vnc will use screen 1. x2vnc: pointer multiplier: 0.930491
として起動します。この状態でマウスは行き来できるようになっています。
が、ウインドウは行き来できません。ウインドウマネージャがいないような雰囲気です。しかし、サブディスプレイ側(Android側)ではコンソールウインドウが開いているので、そこでfirefoxを起動するとサブディスプレイ側にブラウザを開くことができました。とりあえずWebを参考にしながら何か作業したり、viやxedで設定ファイルを編集したりする分には十分です。
ここで一旦終了させます。
$ killall x2vnc $ vncserver -kill :1
VNCのパスワードを変更します。
$ vncpasswd Password: ******** Verify: ********
4.まとめ
インストールが完了したら、以下の手順で起動できます。
$ vncserver :1 -depth 15 -geometry 1280x800 -alwaysshared $ x2vnc -shared -west localhost:1
画面サイズはNexus7(2012)の画面サイズです。Android側でフルスクリーンにしておけばちょうどよくなります。
サブディスプレイとして使っている様子はこんな感じです。USBケーブルは電源供給専用で、接続はモバイルルータ経由です。