Running Windows apps on Linux just changed forever, and I was one of the first to try it

Being able to replace Windows with Linux has been the dream of many, including myself, for a long time. But software compatibility has always been the biggest hurdle. The Wine compatibility layer is great, but it won’t make the latest version of Photoshop or Microsoft Office run on your PC, and virtualization without GPU passthrough just isn’t suitable for demanding apps like Photoshop.

That’s changing now thanks to LSW — a project developed by a close friend of mine. I’ve been extremely excited about this since before it went public, and now that it’s available for anyone to try, I can finally talk about it.

Why is LSW so great?

Windows on Linux is a mess

LSW requires some context to fully comprehend why it’s so great. Windows apps don’t run natively on Linux, and whether it’s because of the smaller market share or any other reason, many popular apps don’t make their way to Linux users in a native package. This leaves a big gap in the software that is available for the platform, and so far, there have been a couple of ways to address that.

Wine is a big one, and while it works great for games and some older software, too many modern pieces of software simply don’t work through Wine. You won’t be able to install Photoshop or Microsoft Office just using Wine, and some apps that can technically function require a lot of prep work. That’s why projects like Affinity for Linux come with dedicated installers to set everything up correctly, though even then, it can be glitchy.

The other option is virtualization, but that has its own hurdles. Most virtualization solutions to run Windows on Linux — such as WinBoat — support no hardware acceleration on the guest operating system, so the entire experience runs in software mode. It works, but things aren’t as performant as you’d expect, and then apps that require hardware acceleration, such as Photoshop, simply don’t work.

This is a problem that’s tried to be addressed by Looking Glass, a solution that enables GPU passthrough for Windows virtual machines so you can make use of your hardware to get better performance. The problem with this solution is that GPU passthrough means the GPU assigned to your virtual machine is essentially disconnected from the host operating system, so you can only use it with one or the other at any given time, and changing that requires some work each time. It also doesn’t work for every machine, as many laptops don’t allow you to pass through a discrete GPU to the VM.

LSW changes everything

Screenshot of Device Manager on Windows 11 running through LSW, showing a detected GPU

LSW finally makes things frictionless thanks to GPU paravirtualization. Using dedicated drivers on the guest OS, your Windows VM is able to pass instructions along to the GPU on your host operating system, supporting hardware acceleration on essentially any hardware (as long as it’s x86, that is) and without any complicated setup. It allows your Windows VM to run smoothly, and it means more demanding Windows apps can finally run on Linux in a usable way.

I’ve been using LSW daily for weeks to work with Affinity, and it’s an absolute game changer. The initial release only worked well on my PCs with AMD integrated GPUs, but as I passed that feedback to the developer, there have been some updates, and it now works well with Intel iGPUs and Nvidia discrete GPUs, too.

I should note that even now, LSW is in a very early alpha stage. My friend only has a limited set of hardware he can test his work on, and while I’ve tried to help him expand the pool of hardware and software to test, there’s only so much ground we can realistically cover between the two of us. If you decide to try it, there are still bound to be plenty of issues.

Currently, a pre-built binary of LSW is only available through the Arch User Repository (AUR). If you have Arch or one of its derivatives along with an AUR helper, you’ll want to install the package called lsw-bin.

Setting up LSW

Simple and fast

As much as I want to talk about the experience of using Windows itself, there’s more to LSW that makes it great because it’s very easy to set up while also being generally fast. While I quite liked WinBoat’s visual design, I always noted that it felt more like a web app, and that’s because it kind of is. The WinBoat manager uses Electron, which is famously resource-hungry and doesn’t feel native on any platform.

LSW uses Qt for its UI framework, so it fits right in with my KDE Plasma desktop, and it feels smoother and lighter to use, too. The initial setup is relatively easy. You provide your own Windows ISO (there’s a download option, but it’s not currently functional), and then you have the option to trim the Windows image. It should be noted that I had issues using an older Windows ISO, so I recommend using Windows 11 version 26H2 for this, as well as sticking to the US English ISO.

Trimming removes unnecessary editions from the multi-edition ISO, plus it removes a lot of pre-installed apps, while leaving some essentials like Windows Update, WebView2, and other generally important Windows features. There’s also a more extreme trimming option that removes these features as well, making Windows even smaller, but potentially breaking some features.

After that, you can select how many CPU cores to make available to the VM, as well as how much RAM and storage you want the VM to have. CPU resources are allocated as needed, and the disk dynamically expands to the maximum size you set, but the RAM you assign is locked to the VM as long as it’s running, meaning that RAM can’t be used by the host operating system if the VM is running in any capacity.

You can customize the user account name and password too, but personally, I leave all these options as the default. Then, all you need to do is wait a few minutes while LSW handles the setup process for Windows. It’s entirely unattended and creates a local user account in Windows, so there’s no Microsoft account requirement. All the driver setup work happens automatically during this stage, so once setup is complete, you can just start using the VM.

But is it actually good?

Yes, yes it is

That’s enough prelude. I’ve been using LSW for the past two weeks on my main PC, and I’ve been absolutely loving it. My main workflow involves using Affinity, a graphics workspace that’s sort of a rival to Photoshop, Illustrator, and to a lesser extent, Lightroom. It’s my go-to for editing photos and images, but using it on Linux has always been less than ideal.

With LSW, I’ve finally been able to work in Affinity exactly the way I would expect. Performance using LSW isn’t quite as fast as running natively on Windows, and I do notice it in some features. Using the spot removal tool when developing a RAW photo, the preview of the results doesn’t quite update in real time, so it adds a little delay to my actions and I have to be extra careful to make sure I’m getting it right.

Previews also don’t update instantly, and there’s a split-second longer wait compared to running natively. Likewise, when I finish developing a RAW photo, it takes a few seconds to develop it and send me to the Pixel workspace, and exporting an image also takes a couple of seconds. This is all more noticeable because I’m coming from a Mac Mini that did all this instantly, but this mini PC is also not particularly fast when running Affinity on Windows natively, so LSW only feels like a small step lower than that. With more powerful hardware, I’m sure the experience would feel very close to native.

And of course, it’s not just Affinity. I was able to easily install and run Photoshop and Lightroom, too, so if you prefer those solutions, they also work just as well here. I will admit I haven’t spent as much time with these two since Affinity is my preferred choice, but giving them a try, they seem to work just fine, albeit a little slow on this hardware. Oddly, what seems to slow down the experience the most are the frequent pop-ups Adobe likes to show when using apps for the first time, so things tend to smooth out as time goes on and there are fewer of them.

If these apps can run, then you know Microsoft Office runs just fine too. I installed the latest version of the Microsoft 365 suite for consumers, and it worked as you would expect in just about every way. There are no major issues here.

What about more intensive workloads?

It’s more complicated

Screenshot of DaVinci Resolve for Windows running on Linux through LSW

I mostly focused on things that I know and that you can’t normally do on Linux, but there is, of course, room for more testing. I did try DaVinci Resolve, though there’s a native Linux version of that app that you should probably use instead.

I don’t have the most powerful hardware to test this on, and adding the overhead of a virtual machine makes this experience less than ideal, but I will say that the app does install, launch, and it seems to run fairly smoothly, though video playback is broken and unusable due to constant flickering. Still, it’s much better than I thought it would be, and this seems like something that can eventually be fixed.

My wife attempted to use Autodesk Fusion on her laptop, which only has a 13th-generation Intel Core processor, and it was unfortunately a big step down in performance, though this was also in part due to only having around 12GB of RAM allocated to the VM. On native Windows, with the full 32GB of RAM available, it was much smoother.

You can even play some games on Windows this way. I haven’t tried this extensively, though my friend mentioned playing Half-Life 2 through the Windows VM. I wasn’t so lucky, as I tried running a couple of Steam games and neither worked. But for gaming, you’re likely better off using Proton on Linux anyway.

I can’t wait to see where it goes

This is just the beginning

Screenshot of the LSW desktop next to the graphics page in the LSW Manager

Even in this very early stage, LSW has already been a complete game-changer for me. I would not be able to realistically use a Linux PC for all my work without some corners being cut, simply because editing images is such a big part of my workflow. Affinity on Linux or any other alternative would slow me down tremendously, and likely result in worse quality work. But running Affinity through LSW, I can work nearly as quickly as I would with a native app, and it makes a huge difference.

Part of what helps with that is the fact that LSW also mounts your Windows storage as an SMB share in Dolphin, so I can easily send files into the Windows VM or grab them from there when I’m working directly in Linux. The goal is to also make the Linux host storage accessible in Windows, though in the releases I’ve tested at writing time, this isn’t functional yet. But it might be live by the time you’re reading it, as my friend tells me the fix is basically ready.

Right now, the only major request I really have is to create a suspend option for the VM that releases the RAM back to the host without having to power off the VM and lose all my work. I would feel more comfortable assigning more RAM to the VM if this was an option, but I’m sure it will come eventually.

You should try LSW

If it’s not obvious yet, I’m in love with LSW, and if you’re using Linux or interested in switching, but worried about app compatibility, I cannot recommend it enough. Again, there are bound to be some issues with something so early in development, but the way things are looking on the machines I’ve been able to try is incredibly exciting. For the first time, I can imagine a world where a Linux PC does everything I need, and that’s a huge accomplishment. You can install it through the AUR and check out the GitHub project below if you’d like to help with development.

Source link

Leave a Reply

Your email address will not be published. Required fields are marked *