Knowledge base: Known Issues
VNC Server in Virtual Mode does not start correctly on Ubuntu 12.04
Platform(s): Linux Product(s): VNC Version(s): 4.6.3

Issue

Using the default settings on a 4.6.3 install on Ubuntu 12.04, the desktop is not started properly when VNC Server in Virtual Mode is launched. A user connecting to VNC Server in Virtual Mode will see a backdrop and the VNC Server status window (without a title), but will not see any other desktop features such as toolbars or launcher.

Status

Workaround available:

The xstartup file should be created/modified as per below:

#!/bin/sh

# VNC Server (Virtual-Mode) start-up script compatible with Ubuntu 12.04

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey

vncconfig -iconic &

if [ -f /usr/bin/gnome-session ]; then
  # Some gnome session types won't work with Xvnc, try to pick a sensible
  # default.
  for SESSION in "ubuntu-2d" "2d-gnome"; do
    if [ -f /usr/share/gnome-session/sessions/$SESSION.session ]; then
      DESKTOP_SESSION=$SESSION; export DESKTOP_SESSION
      GDMSESSION=$SESSION; export GDMSESSION
      STARTUP="/usr/bin/gnome-session --session=$SESSION"; export STARTUP
    fi
  done
fi

if [ -x /etc/X11/Xsession ]; then /etc/X11/Xsession
elif [ -x /etc/X11/xdm/Xsession ]; then /etc/X11/xdm/Xsession
elif [ -x /etc/X11/xinit/Xsession ]; then /etc/X11/xinit/Xsession
elif [ -x /etc/gdm/Xsession ]; then /etc/gdm/Xsession gnome-session
elif [ -x /etc/kde/kdm/Xsession ]; then /etc/kde/kdm/Xsession
elif [ -x /usr/dt/bin/Xsession ]; then
  XSTATION=1 DTXSERVERLOCATION=local /usr/dt/bin/Xsession
elif [ -x /usr/dt/bin/dtsession ]; then /usr/dt/bin/dtsession
else
  if which twm > /dev/null 2>&1; then
    xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    twm
  else
    xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop"
  fi
fi

vncserver -kill $DISPLAY

Creating this file in ~/.vnc/xstartup and making the file executable should resolve the issue by launching a Unity session for VNC Server in Virtual Mode. Alternatively, it can be copied to /etc/vnc/xstartup.custom and made executable to make it a system-wide default.