I see it's time for the bimonthly reinvention of VirtualBox and VMWare's seamless modes from a few faceless techies on GitHub and designed for people who can't be bothered to use WINE or VirtualBox.
And unfortunately it has become the norm in open-source to push out shiny-looking projects with pretty logos and UX but shoddy underlying technology and deceptive/overstated claims (looking at you Tauri).
Thing thing uses RDP for communication which was designed for remotely administering servers over low speed networks.
VirtualBox in contrast integrates at the driver level, and allows you to share the underlying GPU buffers, giving you a native experience that works for things like games or heavy apps. It integrates the Linux filesystem on a driver level as well.
Nit: RDP’s roots are more in multi-user windows like Citrix Metaframe than in remote administration. I’ve found it to perform better than the alternatives (remote X11, VNC, Chrome Remote Desktop) for remote GUIs. Nomachine is the only alternative that was close to its performance.
(And before somebody jumps in to correct me - in ancient times X11 performed quite well over the network but modern Linux GUI apps are no longer designed to minimise X11 network traffic)
Things made for game streaming will be more responsive at the tradeoff of massive bandwidth usage in comparison. RDP can work over slow connections reasonably well.
Massive bandwidth usage and video compression artifacts. It's fine for games and media consumption, but may be problematic for office work.
Remote desktop protocols prefer lossless compression to achieve pixel-perfect rendering, at the expense of framerate/latency.
RDP is unique in that it's not just streaming, but integrates with Windows' GUI stack to actually offload compositing to the client. This however works less and less well with web and Electron apps which do not use native OS widgets.
Agreed that RDP is very well designed. And we don't have an equivalent in Linux or Mac world. All competing protocols are a compromise. I am particularly impressed with good multi-monitor support in RDP. Competitions has had more than a decade to get it right. But I am unaware of any that does.
If I connect remotely from a 2 monitor setup, disconnect and re-connect from my laptop with just a single display, it all magically works. Everything readjusts automatically. I don't know of any other remote desktop protocol/tool that does this so well.
Windows implementation of RDP is actually very good. You get a degree of responsiveness that is unachievable with neither Linux RDP implementation or any other product (maybe barring Parsec, that also doesn’t allow for Linux hosts).
I know that RDP doesn’t work for gaming, but for anything else (even for CAD), it’s the best thing barring direct access to the machine (or, Parsec).
Yeah, but if the Windows app essentially draws into a GPU texture (which is mapped to a dmabuf buffer in the Linux kernel), you can just grab that texture and send it to the compositor.
The overhead difference is like memcpy vs a very fast SQL database.
I remember booting Crysis with that. I wouldn't say it was playable, but the fact it managed to actually launch was impressive. Maybe with modern hardware & bandwidths it would actually be.
Why don't they just write a thin layer that interfaces Windows library calls to native Linux calls, possibly with a thin wrapper to shim it where nothing else quite fits? You could re-implement maybe some of the Windows libs as a "clean room project", given the functional description, that then hands off to an equivalent in Linux.
There's probably a cool and snappy acroynm you could use, like Virtual Interface (with nearly) No Overheard, or "Vino".
Not OP, but I recall Tauri greatly overstating their memory usage claims. It is ultimately a browser running your "app", but just because it's not bundled with your app, doesn't make it consume any lesser RAM. And they even admitted that their benchmarks were wrong[1].
A lot of claims were also made about how Tauri is magically more performant than Electron apps and feels like a native app, but not only is this not true, on some platforms like Linux, Tauri apps are actually slower than Electron because the system webview it uses (generally WebKitGTK) is often slower and less optimised than the Chromium build that Electron ships with[2].
There's a bunch more claims due to it being "Rust" and all the memes that comes with that territory, but all that is basically irrelevant since your "app" is basically shitty javascript in the end. It's like putting lipstick and dressing up a pig, doesn't change the fact that it's still a pig.
- All the work is done in my high performance backend, where I joyfully optimise my hot loops to the assembly level. The web view is a thin layer on top.
- HTML and CSS is a joy to work with in comparison to many UI toolkits. LLMs are better at supporting a web stack.
- The UI zooms/scales, and is accessible with screen readers (looking at you, imgui).
- Cross platform with low effort.
IMO you have to be extremely careful not to pull in a whole frontend stack. Stay as vanilla as possible, maybe alpine.js or tailwind, and I've got hot reload set up so the developer productivity loop is tight when editing the view.
Mostly Tauri claimed their main advantage was smaller app sizes since it's using the native WebView. What they didn't say is how a bottomless pit it is to try standardizing rendering on X different webviews, multiplied by X different webview versions (outdated, not updated systems) ; so now they have pivoted to shipping their own build-in browser ; Competition in open-space is okay but it shouldn't be made by only pushing its perceived advantages while withholding the systemic disadvantages.
Well yeah. The goal for most of these people is to pad a portfolio so they can either get or remain gainfully employed. We are in the performative software era. It's not about data structures or algorithms anymore, it's all about GitHub stars.
Just anecdata, but the few things I use via Wine have all worked fine. I use yabridge so I can use windows VSTs in my Linux DAW.
Games (if they don't use kernel level anti cheat systems) are all flawless with Proton.
But, I honestly don't have a need to use much other windows only software. Almost everything I need to use has Linux versions, or alternatives that fit my needs.
I still have problems running some VSTs with yabridge (could be fixed in an afternoon, but it's important that people should know that it's not a plug and play experience).
What do you use in Windows? It's probably easier starting there and then working out what you can do about it.
Games work great in Proton. Valve has gone all-in on Linux and I suspect before terribly long we'll see more stuff that's SteamOS native, with a compatibility layer for the people who are still using Windows.
I would suspect now that most people either play games which will mostly work okay from Steam, or use stuff that just works in a browser (and I'm kind of lumping Electron apps in with that). Then there are things that are never going to work all that well in Wine or have a native Linux port but which might be worth looking into something else for, like switching from Premiere to Resolve for video editing.
Bar a few exceptions (gaminh mostly) you'd have a much better experience switching to native linux apps. Most are really good once you get past the resistance to change. It takes a bit of time to get used to some but once you are set you are no less productive.
I did the switch 2 decades ago and except for my annual 3 weeks of gaming, I never use wine nor do I use or feel the need for a win VM.
What windows apps do you need? I switched full time to Ubuntu about a month ago and haven't missed a thing. I thought it would be harder, but after some usability configuration changes like how the mouse scrolls, some browser keyboard settings, system font sizes, and logging into a few accounts it has been snag free. Oh and I did install Microsoft fonts. I hate most Linux fonts. The biggest change really is just getting used to new icons. There are several features in Ubuntu I vastly prefer over windows, like window tabs in the file explorer for instance.
So does KDE's Dolphin and many others on Linux. Linux had tabs on file explorers well before Explorer did as well as virtual desktops, app stores, and a few other things that Windows didn't have but later implemented.
Bit of a mixed bag for me. There are a lot of things that work remarkably well, but I have some issues with GPU performance (Cyberpunk 2077 just doesn't run well on Linux for me, despite running great on Windows on the same PC, and GPU-heavy apps like Insta360 Studio and Topaz Denoise run excruciatingly slow or not at all) and some things just don't work (my audio VST plugins work alright, albeit with some bugs about window position handling, but I can't get some of the licensing apps to work under WINE).
Anything that needs a driver isn't going to work. At my last job I needed to talk to some motor controllers and BMS systems through impressively terrible Windows software using proprietary device drivers. I had to keep a Windows partition around on my machine for this. I did have limited success with QEMU, but I never got it working quite right.
SteamVR works ok, but last I checked it still performs worse than on Windows. If you are feeling adventurous, you can try a FOSS VR stack [1]. It works for Steam games running Proton and when it works it provides better performance. I had some troubles with it, sometimes you need to switch versions or you get some artifacts in games, or some games just don't work at all. Good thing is, switching between FOSS and SteamVR is as simple as launching either first before starting the VR game in Steam.
I guess the Linux VR stack might get a bit of love from Valve for the Steam Frame, so things might improve in the near future.
SteamVR for Linux requires DRM leasing to function and many Linux distros, well... window managers/compositors do not support this. But yes it can work.
I hardly want to run windows apps at all, but I have a garmin etrex 32x and I can't for the life of me get garmin windows software to run on wine or linux crossover (something to do with USB) and there is nothing available on linux that can talk to the device. I'd run Windows 10 in a VM but I looked (I think?) pretty carefully and valid Windows licenses seem to be well over $100, cheaper to use a refurbed office desktop.
Someone stomp me down and tell me I'm wrong, please.
Office is easy to get rid of on a personal level through alternatives.
On a professional level the online office 365 web apps are enough for 99% users. My comoany do not even bother giving us licenses for the desktop apps so linux and windows users are on equal term really.
Let's assume good intent and that the problem came up without foreknowledge of the solution (which I think is endemic whether or not it is the case here)
How would you reccomend someone discover/decide is faster to learn/learn/implement existing solutions?
I'm asking because I'm currently in my "cambrian explosion" phase of homelabbing, so implementing that loop for myself personally will pay dividends.
Except these seamless modes have been broken for many years. Also using a containerized Windows means one doesn't have to fiddle with the insane Windows 11 setup process and TPM issues.