Parsec for Remote Multi-OS Development
January 31, 2024
As outlined here, I switched from PC to Mac a little over 3 years ago. Since then, I have been largely happy with my decision. Software compatibility, my biggest fear, hasn’t been a major issue. However, in preparing for my Developing With Arduino series which will feature a short intro to ladder logic programming using the Windows-only Arduino PLC IDE, I needed OS flexibility.
To accomplish this goal, I chose to use a small-form-factor PC running Windows 11 Pro as a remote development device. My class presentation will be running on my normal MacOS computer, so remoting in seems like a good way to keep things straight, while also having access to Windows.
Parsec: Straightforward Remote Solution
Caption: Parsec: Works for Multi-OS development, though it seems I’m only scratching the surface / Image Credit: Screencap
Per a suggestion, I decided on Parsec to remote into my development PC. To get started, simply download and install the program on your host machine (in this context the Windows device you’ll be remoting into), and input/create a username/password as needed. Click the "Share" button that pops up on the PC, and it generates a link that can be sent to your "driver" machine. There you can log on, download Parsec, and connect. You can also simply log on with the same account in both places and things will link up for remote access.
The upshot here is that if you need to use a PC sometimes, but really like having a Macintosh as your primary device, it’s not a problem. At the same time, Parsec and other such services can be used for a wide range of collaborative uses beyond simply switching OSes around. Collaborative CAD or video editing comes to mind, and it can even be used for gaming. They claim it adds only a minuscule 7ms of latency to your setup.
To streamline your setup, you may want to do away with the monitor, keyboard, and/or mouse on your host computer. This is possible, though it takes some hardware and software to get things running properly.
To enable remote login to your PC on startup, you’ll need to start up Parsec before logging in. As noted on Reddit: “Go to Start menu > type in: Services > Find Parsec > Double click > Tab: Recovery Select for all failures, Restart the service. 0 days, 1 minute. Press OK. Right mouse button on the Parsec service, Restart. Restart your PC, and it should work.” This allows you to log in with your client Parsec installation. Note that you’ll need to have Parsec installed on your PC for all users to allow this to work.
Remote login normally will not work without a monitor connected. For this, you can use a fairly simple piece of hardware: an HDMI Dummy plug. Connect this to your host computer’s HDMI port, and it will trick the PC into thinking an actual monitor is connected, allowing remote access. I used a device by “Evanlak,” which was around $7. There are a variety available if you care to search around. That being said, my dummy plug experience was a hit-and-miss at times, so don't toss your old monitor yet.
Caption: 2010 driver, likely not designed for your device, what could go wrong? / Image Credit: Screencap
Finally, if you don’t have an actual mouse connected, Parsec/Windows won’t show the cursor on the screen. One solution would be to connect a wireless mouse or other HID device–I used a Steam Controller dongle, which worked even when the device was off–and just leave it there as a dummy/backup. Another option is to install this Wacom Digitizer driver, as referenced in Parsec’s docs. While this driver solution worked for me, note that it was released in 2010.
All that being said, it may simply be worth it to keep your monitor/keyboard/mouse plugged in if space and/or power needs aren’t critical.
What about Mac Hosting? Linux?
Caption: MacOS hosting requires a few permissions / Image Credit: Screencap
To use Macintosh hosting, you’ll need to enable it in the Parsec settings and update a few OS options as well.
Ubuntu 18.04 LTS Linux is officially supported by Parsec, and other Debian-based distros should work as well (I installed it on Ubuntu 22.04.3 LTS). However, it appears that Linux can only use Parsec as a client–controlling other devices–not as a host. It would make sense that using a Linux client would be more useful, though in my case I would have liked to use things the other way around.
Multi-Machine, Multi-OS, Multi-Options
While MacOS and Linux machines can be quite capable, there may come a time when you just need to use a Windows machine. In my case, a secondary machine/Parsec is a straightforward option. Since I’ll be using it for an upcoming live presentation, minimizing potential snags is paramount.
On the other hand, Parsec is far from the only way to accomplish multi-OS and/or multi-device computing. First, a virtual Windows machine should be possible if you have the computer overhead, though I found the setup to be less than straightforward. In a brief attempt, I didn’t get my VM functioning correctly. There’s also the need for additional storage when using a machine-in-a-machine setup, and keeping track of where everything is stored, plus port usage, could certainly get confusing.
If you prefer the remote-in paradigm, another option is TeamViewer, or you can try RustDesk, an open-source alternative. Parallels is another Windows-on-Mac remote option that may be worth consideration, however, it could potentially introduce “what-is-where” confusion similar to a virtual machine.