I wrote a small script "~/scripts/StartVirtDomain.sh"
#!/bin/sh
# call this script with domainname as parameter
# to start domain and open viewer
/usr/bin/virsh start $1 # domain must be known to virsh
/usr/bin/virt-viewer -w $1 # -w to wait until domain is running.
virt-viewer should be installed with virt-manager; if not, sudo apt-get install virt-viewer.
You may call it with the name of the domain as parameter. It will start the domain (if not already started), then start virt-viewer to connect with this domain.
A sample desktop file (W7Pro.desktop)
[Desktop Entry]
Version=1.0
Type=Application
Name=W7Pro
Comment=Start Windows VM
Exec=~/scripts/StartVirtDomain.sh Win7Pro
Icon=
Path=~/scripts
Terminal=false
StartupNotify=false
did the job (domain name is Win7Pro). There is no error handling in the script; you may add some if necessary. Especially, if the domain is not known to virsh or fails to start, virt-viewer will probably wait forever.
Edit:
If you really need the console window of virt-manager, just call it like
virt-manager --connect=<URI> --show-domain-console <domain>
e.g. in my script this would be
/usr/bin/virt-manager --connect=qemu:///system --show-domain-console $1
The connection URI may be found in the virt-manager main window by selecting the respective connection (e.g. QEMU/KVM) and then using "Details" in the context menu.
You may even delete the line calling virsh, as the domain may be started from the virt-manager console.