こんな感じで余ってるiPhoneをVNCで接続し、3つめのディスプレイにした。
その際の設定のメモ。
(もちろん、PCでもiPhoneでもiPodでもAndroidでも何でも繋げる。)
環境
PC
ArchLinux
X.Org Server 1.17.2
XMonad 0.11.1
XRandR 1.4.3
iPhone4S (640x960)
ディスプレイ1(1920x1080)
ディスプレイ2(1366x768)
準備
iPhone側にRealVNC Viewerアプリをインストールする。無料。
あらかじめRandR#マルチディスプレイ - ArchWikiを参照し、/etc/X11/xorg.conf.d/10-multihead.conf
ファイルを設定しておく。
ちなみに、今回の環境ではこんな感じ。
Section "Monitor"
Identifier "HDMI3"
Option "PreferredMode" "1920x1080"
Option "Position" "0 0"
EndSection
Section "Monitor"
Identifier "VGA1"
Option "PreferredMode" "1360x768"
Option "Position" "1920 0"
EndSection
HDMI
接続とVGA
接続のディスプレイが設定されている。
この段階で一度再起動しよう。(もしくはDMの再起動)
次に、以下のコマンドを実行し、VNC接続時のパスワードを設定する。(保存先は~/.vnc/passwd
とする)
x11vnc -storepasswd`
XRandRとx11vncの設定
~/.xprofile
または~/.xinitrc
(どちらか使用している方)に以下の行を追加する。
おそらく、xmonadを起動する行の前が良い。
xrandr --newmode "640x960_60.00" 50.57 640 680 744 848 960 961 964 994 -hsync +vsync
xrandr --addmode VIRTUAL1 640x960_60.00
xrandr --output VIRTUAL1 --mode 640x960_60.00 --right-of VGA1
x11vnc --clip 640x960+3286+0 -rfbauth ~/.vnc/passwd -ncache 10 -nocursorhape &
xrandr --newmode ~~~
の値は、* Modeline Calculatorなどで計算できる。
xrandr --addmode ~~~
で、解像度を一覧に追加し、xrandr --output ~~ --mode ~~ --right-of ~~~
で、iPhoneの解像度と位置を設定している。
x11vnc
の行では、--clip
オプションによってiPhoneの解像度とiPhoneの位置(今回は一番右端に配置するため、1920+1366=3286)を指定している。
ここで一度ログインし直す。
接続
iPhoneのアプリ側でPCのIPアドレスを入力する。(プライベートIPでよければip addr
コマンドによって調べられる。)
設定したパスワードを入力すれば接続完了。
ちなみに
今回は.xprofile
などで設定したが、もちろん10-multihead.conf
にVIRTUAL1の設定を書くのでも良いと思う。
今回はiPhoneの位置を変更しやすいよう、.xprofile
に書いた。