This is xdragon, a facility for using NaturallySpeaking running in a Windows VM under Linux. To install xdragon, see the file INSTALL. Xdragon is a Windows X client intended to run in a VM under Linux (though it could also work on a completely separate machine, perhaps with a little modification). It accepts Windows keystrokes synthesized by NaturallySpeaking and resynthesizes them as X11 keystrokes. It does not interact with Microsoft edit controls, so you get the interface that you get from NaturallySpeaking with a "dumb" Windows window. In more detail, xdragon puts up a window called "Linux" (so that you can select it with "Switch to Linux") on the Windows VM screen. If this window is selected when you dictate, NaturallySpeaking will send keypress and release events to it. Xdragon will see these and send them on to X Windows, so the text or commands will be passed on to the selected X Window. Additional features: When the "Linux" window loses focus in the VM, xdragon exposes the VM window in X. When the "Linux" window gets focus, xdragon buries the VM window. This means that when you say "correct that", the VM window appears so that you can interact with the correction dialog (but only by voice, not by typing), and when you're done with the correction dialog, the X window that you were using reappears. Xdragon understands a hotkey (currently hardwired in the code to keypad plus). When you push this key, xdragon sends the hotkey to NaturallySpeaking to toggle the microphone. Thus you get the hotkey behavior you would expect. Xdragon monitors all X activity (using the record extension). When you use the keyboard or click the mouse in an X window, or switch to a different X window, xdragon tells NaturallySpeaking (by simulating a Windows keystroke) to forget the dictation state, so when you start dictating again you don't get extra spaces or capitalization at the beginning of your utterance. Ideas for future enhancements: Send keys more rapidly. There is currently a delay caused by waiting for the key to be seen by the record extension. Exit cleanly. In some cases I have found that the X server doesn't know that the connection to xdragon has been closed. Then new invocations cannot grab the hotkey, and you have to restart the VM. Communicate with NaturallySpeaking directly to reset dictation state and toggle the microphone, instead of using simulated keystrokes. Instead of having to say "switch to Linux", when the VM window loses focus, xdragon should select the "Linux" window. Send focus to VM on "correct that", so that user can correct with keyboard. Allow user to change hotkey. Click the mouse in X. This could be done by special commands or by using NatLink to override "Mouse Click", etc., in the Linux window.