Online / 6 & 7 February 2021


Mouse integration for virtualized legacy operating systems

Running old-time OS in a virtual machine often comes with a problem of non-coinciding cursors. A relative positioning device (mouse and trackball) provides the operating system with a vector of the cursor movement instead of its coordinates. As a result, different cursor acceleration formulas are breaking the coincidence of host and guest systems cursor. Fortunately, modern guest operating systems support absolute positioning devices (tablets), which provide real cursor coordinates. Desktop virtualization systems emulate such devices (USB Wacom tablet in case of QEMU), allowing the host cursor to control guest systems in so-called "mouse integration mode".

Until recent times mouse integration was available only if guest OS either has a driver from the virtual machine vendor or supports USB tablet. In all other situations, desktop virtual machines use "mouse lock mode". The host cursor is hidden, and the user can only interact with the guest system until some dedicated keypress.

Starting from version 1.9, QEMU had accepted our GSOC-developed patch intended for the osimeline project (HTML-based live demo of historical operating systems) and can emulate the RS-232 Wacom tablet as a "wctablet" character device backend. Currently, QEMU is the only virtualization system with such capabilities.

Guest OS still needs such tablet drivers, which exist at least for DOS, OS/2, Windows 3.x and Windows 95, BeOS, Mac OS 9.x, Mac OS X, and pre-USB Linux (some drivers are even FLOSS). Drivers for Windows 3.x Windows 95 and Linux are the most compatible ones and are easiest to configure. The talk will show how to activate mouse integration with the legacy OS. The situation with wctablet-compatible drivers and the possibility to improve it will be discussed as well.


Photo of Dmitriy Kostiuk Dmitriy Kostiuk