vncserverの代替
vncserverを使ったリモートデスクトップで、Drag and Dropができない。 ファイル・マネージャで Drag and Drop はあまり使わないので気にならなかったが、 Thunderbirdでのメールの振り分けなどもできないので調べて見ることにした。
X Virtual Frame Buffer を使えば、モニターの解像度とは関係なく画面の大きさを設定できる。
aptitude install xvfb して、下記のスクリプトで立ち上げに成功。 Drag & Drop もできるようになった。
$ cat bin/xvfbvnc.sh #!/bin/sh unset SSH_AUTH_SOCK xvfb-run -n 1 -s "-screen 0 1280x1024x16" /etc/X11/Xsession & x11vnc -display WAIT:1 -rfbport 5901 -repeat -forever -shared -localhost -usepw -o ~/.x11vnc-errors &
19/11/2011 00:49:16 Disabled X server key autorepeat. 19/11/2011 00:49:16 to force back on run: 'xset r on' (3 times)
コンソールのgdmは不要なので削除したい。sudo mv /etc/X11/default-display-manager /etc/X11/default-display-manager.stopped として 起動しないようにしたつもりだが、起動してしまうようだ。
apt-get remove gdm としてみたところ、代わりに gdm3 がインストールされた。 この gdm3 も削除しようとすると、デスクトップ環境の殆どを削除すると言ってきたので gdm3 はそのままにして、再起動時は手動で sudo /etc/init.d/gdm3 stop することにした。
[2012/4/5] /etc/X11/default-display-manager の内容を /usr/sbin/gdm3 から /usr/sbin/nologin に変更すればコンソールのGUIは起動しなくなった。
/etc/X11/Xsession.d/30x11-common_xresources にあるように、/etc/X11/Xresources/x11-common/ 下のファイルと、 $HOME/.Xresources を読み込んでから立ち上がるようになっており、コンソールの gdm からログインした場合は、設定されるのだが なぜか xvfb-run から Xsession を起動した場合は読み込まれないようだ。
「SakuraのVPS」のコントロールパネルからJava Appletを使ってアクセスできるのだが、 SSHトンネルを使ってWindowsのvncviewerからもアクセスできるようにする。
解像度が 800x600以上大きくなってくれない。xrandr コマンドでモニターの 解像度が調べられる。VPSなので実際のモニターにつながっているわけではない。
$ xrandr xrandr: Failed to get size of gamma for output default Screen 0: minimum 640 x 480, current 800 x 600, maximum 800 x 600 default connected 800x600+0+0 0mm x 0mm 800x600 61.0* 640x480 60.0
起動方法
$ sudo vi /etc/X11/xorg.conf $ sudo /etc/init.d/gdm start $ sudo x11vnc -display :0 -rfbport 5901 -localhost -auth /var/lib/gdm/:0.Xauth
解像度が低すぎて、メニューからログアウトが実行できない。 vncviewerを切断すると x11vnc が終了するので、
$ sudo /etc/init.d/gdm stop
とすれば止められる。
/etc/X11/xorg.conf: に以下のように足してみたが効果なし
Section "Screen"
Identifier "Default Screen"
Device "Configured Video Device"
Monitor "Configured Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
EndSection
/var/log/Xorg.0.log を見ながら "Monitor" Section に何か書けばいいのかもしれない。