spice supports 2 different mouse mode. One is server and the other client.
Server: When a user clocks inside the Spice client windows, the client mouse is captured and set invisible. In this mode, the server controls the mouse position on display. However, it might be probematic on WAN or a loaded server, where mouse cursor might have some latency.
Client: Not captured and is used as effective pointing device. For enabling client mouse, VDI host application must register an absolute pointing device(USB tablet in QEMU). This mode is appropriate for WAN or loaded server, since cursor has smooth motion.
1. Client is the default mode for spice. To switch between server mode and client mode, add the following line to libvirt xml:
2. Client mouse requires a usb tablet emulation, which however will consume a considerable amount of CPU resource due to a QEMU bug. On my laptop, a VM which a single usb tablet emulation consumes 23% CPU, but it drops to 7% if disabling usb tablet.
Ultimately, the following configuration is more preferred if you want to improve the VM density.