vncserverの代替

#contents

#navi(Sakura/VPS)

**概要 [#n009c1d5]
vncserverを使ったリモートデスクトップで、Drag and Dropができない。
ファイル・マネージャで Drag and Drop はあまり使わないので気にならなかったが、
Thunderbirdでのメールの振り分けなどもできないので調べて見ることにした。

-[[[ubuntu] Drag and Drop failing with VNC - Ubuntu Forums:http://ubuntuforums.org/showthread.php?t=1497635]] - Xvfb + x11vncで凌げということか
-[[Bug 620240 – GNOME Drag & Drop broken for remote X sessions:https://bugzilla.gnome.org/show_bug.cgi?id=620240]] - gtkのバグ?
-[[Bug #587856 in gtk+2.0 (Ubuntu): “GNOME Drag & Drop broken for remote X sessions”:https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/587856]]

**コンソール画面の転送 [#l42a2be5]
「SakuraのVPS」のコントロールパネルからJava Appletを使ってアクセスできるのだが、
SSHトンネルを使ってWindowsの[[vncviewer>Sakura/VPS/VNC Viewer]]からもアクセスできるようにする。

解像度が 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 に何か書けばいいのかもしれない。

**Xvfbとの組み合わせ [#sce31b33]
X Virtual Frame Buffer を使えば、モニターの解像度とは関係なく画面の大きさを設定できる。

aptitude install xvfb して、下記のスクリプトで立ち上げに成功。
Drag & Drop もできるようになった。

 $ cat bin/xvfbvnc.sh
 #!/bin/sh
 
 unset SSH_AUTH_SOCK
 export DISPLAY=:1
 
 Xvfb :1 -screen 0 1280x1024x16 &
 sleep 2
 [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
 /etc/X11/Xsession &
 x11vnc -rfbport 5901 -forever -shared -localhost -usepw -o ~/.x11vnc-errors &

止めるときは、killall Xvfb でよい。
起動したシェル(ssh ログイン)を終了(ログアウト)してもデスクトップは存在し続けるようだ。

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 することにした。

***問題点 [#xaa07370]
+後から接続してきた vncviewer に、先の接続を切断してつなぎ直すという動作ができない。
--dontdisconnect がデフォルトで有効なので切断しないようだ。このオプションを否定するオプションが見つからない
--暫定的に -shared をつけて、後から接続してきたら同時にアクセスできるようにする 
+キーリピートが効かない
--xset r on を3回唱えればリピートするようだ。なぜ3回?
 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)
--xvfbvnc.sh の中では、xset r on を4回実行してもリピートは有効にならない
+Chromeで右クリックするとメニューが出ずに新しいタブで開く
--Button Downした後、右に数ドット動いてから Button Upのイベントを送っているのではないか
--Firefoxではあまり気にならない
--Gnome Terminalで、キーボードフォーカスを与えるために本文中に左クリックすると、一行選択してしまう
+Drag & Drop 中にアイコンが変化しない
+フォント等が精細になった気がする
+何か起動する度に Xlib:  extension "RANDR" missing on display ":1.0" といったエラーが出る
--Xvfb :1 +extension RANDR -screen 0 1280x1024x16 &  で起動してみたが効果なし

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS