Comment by hxorr

16 hours ago

I hope they can come up with a solution integrated into KDE where you can have apps running on a VM but appearing as a native Kwin window... Would probably need a helper daemon running on guest OS.

I know a similar thing has been done before but would be great to have upstream support from a major DE

You can get pretty close to this with VirtualBox, which is one of two reasons I'm still using it.

I have multiple VMs running on my laptop. I can attach an external display and resize the VM windows. When detaching the display, the windows all resize back down automatically. With shared clipboard and a few other niceties, each VM feels pretty close to a native experience.

I have single-application VMs (e.g., the one that hosts my daily-driver browser environment that I'm typing into right now); those run a lightly customized openbox environment and the application is full-screened inside the VM. Those really feel like a Qubes-like experience, like a native application but inside a VM.

I also have purpose-specific VMs. For example, anytime I get started on a new contract, I spin up a new VM for it. All credentials, dev tooling, files, etc. for that project are contained inside that VM. I typically set it up so that there are multiple virtual desktops on my host environment, but a single desktop inside the VM; alt-tab switches tasks inside the VM but not the host environment. So, it's easy to switch "into" the project VM, work there for a while as naturally as I would if everything were native, and then switch out again as needed.

I really really want to swap all of the VirtualBox bits out with QEMU or KVM, but those aren't quite as polished just yet -- despite VirtualBox's numerous and sometimes work-stopping bugs, and the ever-looming threat of Oracle's litigation team.

Surprisingly Windows support this with their WSL2. It caught me off guard when i tried to run "nautilus" just for fun.

  • That's because WSL2 implements an X11 client and sets the DISPLAY variable. X11 network transparency does the rest. You can do the same on Linux, as long as you're to learn how X11 arcane permission system works.

    • The current architecture is wayland based, with weston and an RDP backend, and the Windows host running an RDP client. X11 apps run on Xwayland within WSL2, so ultimately rendered on the same RDP client.

    • Windows implements and X11 _server_ (the client in X11 jargon is the app, which if remote works on a remote server - yeah it's confusing. You can have the X11 server on a thin client showing data from an X11 client running on a remote server). They also added Wayland support, too.

That requires a bit of hacking in general, it's not that easy to achieve that with closed source OSes. Windows supports that via RDP, btw.

You could maybe do something easier with debboostrap and chroot mounting without needing to waste resources on vm management.

None of the current solutions support this. Only if you fallback to X11 forwarding, but then it's not going to be seamless because it requires setup on guests.

Happy to be corrected if I'm wrong, this was my conclusion last year when researching again this space (since we're talking about virtualization support, thanks again RedHat for deprecating SPICE /s).

I've read that it's possible in Windows' RDP, but haven't found a Linux client/server setup that supports that.

  • > I've read that it's possible in Windows' RDP, but haven't found a Linux client/server setup that supports that.

    FreeRDP has supported this for over 10 years as a client. I don't know about non-windows servers: https://files.catbox.moe/roso8c.png

    It's also significantly more responsive than any libvirt framebuffer.

    • > It's also significantly more responsive than any libvirt framebuffer.

      I was pretty bullish on SPICE last year, with hardware acceleration enabled it was great. Not game streaming software latencies, but the seamless host-guest VM integration and usb/smart card redirection where features that I really desired for my workflows.