Control desktop remotely for ubuntu

Try to look for a free alternative for teamviewer. ssh -X will work but like to control the current desktop directly. It turns out can be done easily with x11vnc. In the host (after connecting say with ssh), start x11vnc with x11vnc -display :0 For the client, simply run vncviewer.