As much as the Linux community cherishes its robust ecosystem, there are moments when certain applications remain tethered to Windows, leaving users in a quandary. While solutions like Wine, Crossover Office, or virtual machines exist, they often come with their own set of complications. Recently, however, a novel approach emerged that simplifies the process significantly by leveraging hardware rather than virtualization.
Once Upon a Time
In an unexpected twist of fate, I received a Surface Laptop 2 that appeared to be non-functional. The device wouldn’t charge, and with the keyboard integrated, it seemed doomed. A creative suggestion to detach the keyboard using a paper clip revealed a simple truth: the laptop was perfectly operational once the keyboard was removed. With the option to replace the keyboard or utilize it as a tablet, I was left pondering the fate of this seemingly redundant device amidst my collection of laptops.
Coincidence
At the same time, I was transitioning my Windows installations from VirtualBox to KVM, a process notorious for its challenges. During this transition, I stumbled upon WinApps, a straightforward script that allows Windows applications to run seamlessly within a virtual machine while appearing on the Linux desktop. For instance, Microsoft Word can be accessed just like any native application, with the added benefit of real-time integration with other Microsoft Office programs.
However, this setup came with a caveat: the disk activity was incessant, causing occasional slowdowns due to the dual file system interaction between Windows and Linux. Despite having a robust SSD cache and RAID array, the performance was marred by the constant disk thrashing.
Virtually Reality, for Real
What if, instead of relying on a virtual machine, WinApps could connect directly to a physical Windows machine on the network? This idea led me to experiment with the Surface Laptop, allowing me to run Windows software directly on my desktop, with performance dictated only by network speed.
To my delight, this approach proved successful. WinApps accommodates various virtualization types, including a “manual” mode, which simply requires the IP address of the remote Windows device.
Is it that Easy?
While the setup was largely straightforward, a couple of minor hurdles emerged. First, an installation script needed to be executed on the Windows machine, which also required enabling Remote Desktop. The instructions were clear:
Next, you will need to make some registry changes to enable RDP Applications to run on the system. Start by downloading the RDPApps.reg file, right-clicking on the Raw button, and clicking on Save target as. Repeat the same thing for the install.bat and the NetProfileCleanup.ps1. Do not download the Container.reg.
The second issue arose from my dual-monitor setup, which posed compatibility challenges with the xfreerdp program. After some adjustments, I opted to install the latest version of xfreerdp to ensure optimal performance, as older versions can often be found in standard repositories.
For routine operations, the following configuration worked effectively:
RDP_FLAGS="/cert:tofu /sound /microphone +home-drive /span /multimon:force /mouse-relative /dynamic-resolution"
Additionally, I made adjustments to the ~/.local/bin/winapps script to refine the options for launching the Windows session.
Bugs!
During the process, I encountered a bug related to user permissions for running virtual machines. This required some tinkering with the script to bypass the permission check. Furthermore, while the installer set up the ~/local/bin directory, it failed to create links in my start menu, necessitating manual additions for non-standard applications.
Proof in the Pudding
Ultimately, the endeavor bore fruit: Microsoft Word now runs smoothly on my KDE desktop. Although initial window positioning may require some adjustments, the overall functionality is commendable. Users can easily toggle between full screen and windowed modes, enjoying a seamless RDP experience.
While the setup is not without its imperfections—such as cumbersome USB device redirection—the potential for utilizing an old computer or a low-cost small form factor PC is enticing. This solution is ideal for occasional tasks like editing Word documents or running specialized software.
As the lines between operating systems blur, the advent of tools like WSL on Windows has made it increasingly easy to navigate both environments. With a preference for the control and troubleshooting capabilities offered by Linux, the need for dual-booting has become a relic of the past.