This file has instructions for the installation of xdragon.  More
general information is in the file README.

First you need a virtual machine system running on your Linux machine.
I used virtualbox.

Then you need some version of Windows running on your virtual machine.
If you happen to have one on a CD, you should be able to just install
it.  In my case, I used "Windows XP mode" from Microsoft.  This is a
facility to allow you to run Windows XP on Windows 7.  When you
download it, you get a file called WindowsXPMode_N_en-us.exe.  This file
will only run on Windows 7, but once you have run it you get a
vhd (virtual hard disk) file that you can use with your virtual
machine system on any host.

You'll need to authorize your Windows software.  I used the
authorization key that came with the actual hardware on which I am
running Windows under Linux.  No software piracy here -- I'm running
Windows on hardware that came with a Windows license.

Now you have Windows running on your VM, install your favorite version
of NaturallySpeaking.  (I use version 4, because it seems to me that
every version after that has been worse than one before.  In
particular, starting with version 11, you cannot use the phonetic
alphabet in a single utterance with other dictation, and even in
version 10 this did not work well.)  You should be able to install
NaturallySpeaking just as though you were installing it on a machine
running Windows natively, using your virtual CD drive that maps to
your actual CD Drive, etc.

I've heard that people have had trouble with the audio system on
virtual machines.  I've had no trouble on the two hosts that I've
tried (both running Ubuntu 12.04).  Of course you should first make
sure that the audio system in your host is working, e.g. via
parec/pacat if you're using pulseaudio.

If you want to run NatLink, Vocola, etc., you should install those on
your VM.

The xdragon program is an X Windows client that runs on the VM.  It
requires Xlib and the XTest extension library.  I have been using
cygwin, but I attempted to write code without any cygwin dependencies,
so you could use some other Xlib.  Thus the next step is to install
cygwin.  At a minimum, you should include libX11_6, libXtst6, and
xauth.  If you're going to compile xdragon, you'll need the cygwin
development environment including gcc-core, make and libxtst-devel.

Xdragon has to be able to communicate with the X server on the host
OS.  Most X servers nowadays listen only on UNIX sockets and not on
the network, so you'll probably have to configure your X server.  In
my case (Ubuntu 12.04) I had to remove "-nolisten tcp" from
/etc/X11/xinit/xserverrc and restart X.

In addition to being able to connect, you need to be authorized.  One
way to do this is to say "xauth list host.domain:0" on the
host, where host.domain is the name of your host.  This prints
the needed authorization line.  Then in the VM, say "xauth add "
and paste the authorization line from the host.

Now you can install xdragon.  It's possible you can just run the
xdragon.exe binary that is included in the distribution.  If not,
say "make" to compile it anew.  To run the program, say
xdragon host.domain:0.  This should create and select a window
called "Linux" on your VM screen.  If this window is selected in your
VM, and some other window besides the VM is selected in X Windows,
then things that you say to NaturallySpeaking should go to your
selected X window.

See the file README for more information about using xdragon.
