Xtightvncviewer
xtightvncviewer is a very fast and light VNC viewer that you can use to access remote machines, including virtual machines, from underpowered computers like Raspberry Pi. But there's a hard-to find setting that you need in order to make it work well, which is setting the 'grabKeyboard' Xresources setting. After scouring the net for this info several times, I decided to make a copy here...
In the client's computer, we install the viewer with:
sudo apt-get install xtightvncviewer
To avoid problems with the keyboard in full screen mode (who owns the keyboard, the client's desktop or vncviewer?) we shall give the keyboard to vncviewer. To do that we just type:
echo "Vncviewer*grabKeyboard: true" >> ~/.Xresources xrdb -merge ~/.Xresources
in order to define the option grabKeyboard in the /home/user/.Xresources file.
We are ready to login using
xtightvncviewer -fullscreen -x11cursor 192.168.1.6:1
(replace with your own server's IP address as appropriate).
When you're in fullscreen mode, use F8 to bring up a menu which include "Quit Viewer". If F8 isn't working for you, you may have a problem with the "grabKeyboard" option as described above.
The option -x11cursor shows a more beautiful pointer for the mouse.
This useful information taken from http://cosmolinux.no-ip.org/raconetlinux2/vnc.html, via the Wayback Machine
Good settings for connecting to a remote server
ssh -C -o CompressionLevel=9 -L5991:localhost:5991 my.server.example.net xtightvncviewer -fullscreen -depth 16 -compresslevel 8 -quality 3 -encodings "tight copyrect hextile zlib corre rre raw" -x11cursor localhost:5991
(you probably you want to type these into two separate console windows).
This xtightvncviewer is much faster than the nice GUI alternative, Remmina on Raspberry Pi.
However, the frustration with xtightvncviewer is that it doesn't pass through the SHIFT-TAB keystroke correctly -- apparently there is a bug somewhere.
TigerVNC
TigerVNC looks like a more actively maintained VNC viewer, and it's supposed to work on Raspberry Pi. However it seems difficult to get it running, since FLTK 1.3.3 is not available easily on Raspberry Pi via Raspbian.
# get the .tar.gz for TigerVNC latest stable sudo apt-get install libfltk1.3-dev libjpeg-dev libgnutls-dev zlib1g-dev wget http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.4.2-2_armhf.deb wget http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.4.2-2_armhf.deb wget http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libturbojpeg0-dev_1.4.2-2_armhf.deb wget http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libturbojpeg0_1.4.2-2_armhf.deb sudo dpkg -i lib*jpeg*.deb tar zxvf v1.6.0.tar.gz cd tigervnc-1.6.0 cmake . make # fails with warnings arising from old version of FLTK.
Needed here: instructions on how to build more recent packages from 'sid' using 'build-dep' and '-b source'.
Setting screen size
TightVNC Server doesn't seem to support screen size requests. Possibly TigerVNC and RealVNC do this, but TightVNC Server doesn't seem to do it. An alternative is to log in to the remote host system (assuming the remote system is a VirtualBox guest OS) and run the following command:
vboxmanage controlvm virtualmachinename setvideomodehint 1920 1080 16
where the values 1920 1080 16 correspond to the desired remote guest screen width, height and pixel depth (you probably want to match them to your local screen width and height).