It is easy to set up a virtual machine with the virt-manager GUI.
To add a second monitor (or more) is also pretty easy, once you know how to do it. However, to view a second monitor simultaneously with the first, you will need to use the tool remote-viewer.
In virt-manager, select “Show virtual hardware details.”
Add a new video card. A basic QXL type should be sufficient.
It is possible to connect to the guest’s displays over the network, if you configure it to be possible. For example, you use your desktop Virtual Machine Manager to connect to a server’s libvirt via a connection string like qemu+ssh://firstname.lastname@example.org/system.
On that virtual machine’s “Display spice” virtual hardware, modify the address tag to “All interfaces.” Also note the the port number given to this guest. In my screenshot you can see mine is port 5907.
You will want to open up the firewall on the vm host. I suggest just using the vdsm definition, which is for the oVirt project and includes TCP ports 5900-6923.
sudo firewall-cmd --permanent --add-service=vdsm; sudo firewall-cmd --reload
You will need to shut down (not reboot) the guest if it is running at the time, for it to be able to use the new virtual hardware or pretty much any new setting.
Once the virtual machine is running again, use “Remote Viewer” in the GUI, or run from the command line.
Learn how to do this in the cli, including maybe at the virt-install statement. Or at least how to retro-fit an existing domain.
- search “kvm spice guest windows multiple monitors”
- Shamelessly ripped off from https://solus-project.com/forums/viewtopic.php?f=11&t=8663
- spice guest tools https://www.spice-space.org/download.html