Hi there,
I've just recently started using Linux (Mint) and I'm pondering on if and how to change my setup.
Here's how it is right now: I have 4 drives - 1 512GB ssd which has Windows installed on it, a 2 TB hdd that's used for storage on the Windows part of my system, a 1 TB m2 ssd with Linux Mint and a 2 TB ssd for storage on my the Linux part of my system.
I can't unfortunately get rid of Windows completely, as I need the Office Suite for Work - I do training sessions on process optimization mostly online via MS Teams.
At the moment, I have fmstrat/winapps installed, as well as teams-for-linux (which is just a web app as far as I know) for most basic things like outlook and teams messages. Both options (Web-apps and winapps) are not really suitable for online training sessions or more work intense sessions as they are simply too slow or missing features. For everything else, I'll do a reboot into the windows system and after I'm done I reboot back to Linux.
Now here's my question:
Is there a way, e.g. to put a VM fullscreen over both displays on one workspace and give it full power / resources so I won't notice much difference to a native system (How good would my components need to be for this?) - and suspend the VM if I switch away from that workspace back to Linux. And would this be suitable to access my devices like the rodecaster pro duo or my cam (via CamLink 4K) and my streamdeck?
Do you have any other better ideas to get to my goal of basically having an easy way to switch between Win and Linux. The Windows VM would only be used for Office work and online Meetings but both should run without any noticeable lags or glitches.
Would another distro be better for this task? I like working with Linux Mint atm but I wouldn't mind trying a different one as well - the Linux distro would have to be suitable for gaming though.
Ignore the GPU-passthru suggestions (at least for now), as they would be overkill for running MS Office.
The best way to get a decent-performing, dual-screen, productivity oriented Windows to display is via RDP and FreeRDP. You can use the following command to run your VM in fullscreen across both your monitors:
xfreerdp /monitors:1,2 /multimon /v:<host>
But run
xfreerdp /monitor-list
to check your monitor numbers first.I use FreeRDP and Windows regularly for work (and my host OS is Linux), so I've explored multiple options and none of the usual Spice-clients were any good; FreeRDP was by far the best option I found. It also supports DPI scaling, shared folders, clipboard sharing etc - all work pretty much out of the box (you may need to pass the respective parameters to the command though - run
xfreerdp --help
to check the options)One thing though, make sure you get FreeRDP version 3.xx. Some distros are still on 2.xx for whatever reason, but I'd highly recommend upgrading to 3.xx because there have been a ton of performance and QoL improvements since then, that'll make a big difference for your usage.
As for the VM performance itself, make sure you give it sufficient CPUs (at least 4 cores, and passthru the CPU topology) and RAM (at least 8GB). It might also be worth debloating your Windows VM, using a script such as Win11Debloat (it works with Win10 as well btw).
You can use the
virsh suspend
command for that. But to have it automatically suspend when you switch workspaces, you'll need to manually set up some automation, which depends on your DE/WM. KDE for instance has KWin rules which you can use to trigger a script or a command, other DE/WMs might have something similar. So you'll need to explore your DE/WM's window/workspace management and scripting options.But get familiar with the virsh command, as that's what you'll be relying on to manage your VM via scripts. The documentation has more details on the shutdown/suspend/hibernate features that's worth taking a look at.
Awesome thank you for taking the time too be so detailed! Ok I think I'm starting to see what I need to do.