8 ms·
WinApps: Run Windows apps as if they were a part of the native Linux OS
- andai 11mo agoThought "isn't that just Wine" but no! They are virtualizing it! And integrating them seamlessly with Linux desktop somehow! Looks pretty cool. I remember playing with something similar in Virtualbox, it had a seamless mode too. It was a bit janky, and I think they removed it recently. I used it in the old days, to have MSN messenger on Ubuntu :)
- userbinator 11mo agoThey are virtualizing it! This is incidentally how Windows 386-9x ran DOS applications - in a VM, using V86 mode.
- tommica 11mo ago> This is incidentally how Windows 386-9x ran DOS applications - in a VM, using V86 mode. Oh that is cool! Somehow I imagined that virtualization is more of a "modern" concept, but clearly that is naive thinking.
- pfix 11mo agoHistory edit A form of virtualization was first demonstrated with IBM's CP-40 research system in 1967, then distributed via open source in CP/CMS in 1967–1972, and re-implemented in IBM's VM family from 1972 to the present. Each CP/CMS user was provided a simulated, stand-alone computer. Source: https://en.wikipedia.org/wiki/Virtualization https://en.wikipedia.org/wiki/Virtualization Sometimes it feels like we don't have any actual innovation in CS anymore and it's all from pre 2000s and only made mainstream starting then.
- burnt-resistor 11mo agoNit: Do you mean "revisionist history"? ;) VAX/VMS was originally virtualization of the PDP-11. Windows NT benefited from the loss of MICA/PRISM to virtualize/isolate what was once messy, unreliable, single-tasking, cooperative Windows 3.1/9x to be more isolated, reliable, concurrent, and parallel processing where the fundamental unit of isolated granular execution was the process like UNIX. DOS mode "VM"s run within Windows 3.x/9x/NT aren't really isolated VMs because they can't replace the DPMI server or launch another instance of (386enh mode) Windows. All they do is semi-isolate real mode and DPMI client apps somewhat to allow multiple instances of them. They can still do bad things™ and don't have full control of the "system" in the way a real system, emulator, or hardware-assisted type-1 or type-2 hypervisor does. They're "virtual" in the way DesqView was "virtual". Consumerized enterprise virtualization happened in the PC world with VMware Workstation->GSX->Server->ESX->ESXi/vCenter in relatively quick succession around 2001-2005. Xen popped up about the time of ESX (pre-ESXi). IBM keeps quietly churning out z-based mainframe processors like the z17. Software from the 60's and 70's still runs because they don't do the incompatibility churn that's slowly being more and more adopted in the past 15 years to break everything, all the time, so that nothing "old" that had a long-lasting standard or compatibility ABI that was working will work now. I'm sure it's a lot of work, but churn is also work and especially when it breaks N users. Also, I don't think many folks from the PC-based enterprise server world appreciate the reliability, availability, and service features mainframes have/had.. although vMotion (moving VMs between physical machine linked to shared storage) when it came out was pretty cool.
- immibis 11mo agoIf you think about it, every process is a VM.
- Krutonium 11mo agoSeamless Mode didn't work for anything newer than... XP, I think, as a guest? So it makes sense they'd drop it. Fun while it lasted though!
- cyberax 11mo agoOk. Can you run WSL inside of it?
- RealityVoid 11mo agoHah! Even better question is can you run it inside WSL?
- jonp888 11mo agoThis system works by launching an official Windows image in Docker and then making an RDP connection to it. There are a couple of others too now like WinBoat What all of them avoid mentioning is that the images were intended by Microsoft for test and development purposes on Windows and the license clearly states you need a valid Windows license to use them: https://hub.docker.com/r/microsoft/windows#license https://hub.docker.com/r/microsoft/windows#license I wonder if Microsoft will take some action to enforce this if these projects become popular. Edit: This comment is incorrect, see below comment from doctorpangloss
- yjftsjthsd-h 11mo agoI don't get it. Is it a VM in a container? Skimming https://hub.docker.com/r/microsoft/windows https://hub.docker.com/r/microsoft/windows I would have interpreted that as a native Windows container, which I vaguely recall being a thing, but that would require an NT host, not Linux.
- breppp 11mo agoI remember Windows containers have two modes of operation as a Hyper-V VM and some sort of container-like isolation. I think the reason is that they had to quickly ship "containers" initially and that Windows does not have a kernel backwards compatibility the same way Linux does https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility https://learn.microsoft.com/en-us/virtualization/windowscont...
- tsimionescu 11mo agoIt is a container in a VM. I'm not even sure what, if anything, the container achieves. But their installation instructions are pretty clear that you start by creating a Windows VM.
- jodoherty 11mo agoThe container is a Linux container running a virtual machine inside. WinApps needs a Windows RDP server to work. Most of the functionality doesn't care where that Windows RDP server is actually running as long as its FreeRDP client can connect to it. The container or libvirt VM options are just ways to accomplish that via virtualization. I imagine the container part makes it easier to automate QEMU virtualization using bash scripting without worrying about distribution specific differences in the environment. These kinds of scripts become fairly ossified to their environment. Making them run consistently on different Linux distributions is its own adventure unrelated to installing and running Windows, so the containerization eliminates the need for a lot more bash scripting to account for those differences. The container's bash scripts download the Windows installer ISOs and run them in an unattended mode inside a QEMU VM. The unattended installation is configured to skip activation: - https://github.com/dockur/windows/blob/c7aac1edcf37a69ff730d0b4f073d16580a27763/src/entry.sh#L34 https://github.com/dockur/windows/blob/c7aac1edcf37a69ff730d... - https://github.com/dockur/windows/blob/c7aac1edcf37a69ff730d0b4f073d16580a27763/src/define.sh#L723-L792 https://github.com/dockur/windows/blob/c7aac1edcf37a69ff730d... - https://github.com/dockur/windows/blob/c7aac1edcf37a69ff730d0b4f073d16580a27763/assets/win11x64.xml#L126 https://github.com/dockur/windows/blob/c7aac1edcf37a69ff730d... Once the container is running, WinApps configures RDP via some scripts and registry settings exposed into the container via a volume so the container's scripts can copy and run them in the Windows VM: - https://github.com/winapps-org/winapps/blob/b4766336903d0cbe768d2ca7e8bb4b8a5951d0f2/compose.yaml#L37 https://github.com/winapps-org/winapps/blob/b4766336903d0cbe... - https://github.com/winapps-org/winapps/blob/main/oem/RDPApps.reg https://github.com/winapps-org/winapps/blob/main/oem/RDPApps... You can do it all yourself too with your own libvirt VM, but it's just more involved: - https://github.com/winapps-org/winapps/blob/main/docs/libvirt.md https://github.com/winapps-org/winapps/blob/main/docs/libvir... I haven't seen any of this before, but I think it's a pretty clever use of scripting and containers on top of some fairly mature but hard to use pieces of software.
- hcurtiss 11mo agoParallels coherence mode in MacOS is similar.
- darthwalsh 11mo agoI really liked using parallels, but when I got my apple silicon MacBook it was too much headache trying to get apps to compile on ARM. I meant to look into x86 VMs but it was experimental last I looked.
- cromka 11mo agoHow about GPU acceleration, for e.g. Affinity?
- gigatexal 11mo agoProbably works the same as any other container that needs such acceleration (plex, CUDA) just pass the device over and the CAPs. There are guides online. Whether or not the windows in a container will use it idk.
- BoredPositron 11mo agoWorks on wine via vulcan/opencl
- j16sdiz 11mo ago> Icon in the Public Domain. You can't re-create an icon to circumvent trademark law. Using icon to refer to an application is fair use. I am not sure what's the point of having a public domain icon.
- rbits 11mo agoWho's re-creating an icon? I can only see links to images from Wikipedia
- GaryBluto 11mo agoThink of the fact that nobody working on the project even considered that as a helpful warning to not use it. Even more humorous is the fact they decided to repeat this blunder under every single icon instead of neatly below the table.
- gruez 11mo ago>You can't re-create an icon to circumvent trademark law. That's not what's happening here. According to wikipedia it's public domain because: >This logo image consists only of simple geometric shapes or text. It does not meet the threshold of originality needed for copyright protection, and is therefore in the public domain. Although it is free of copyright restrictions, this image may still be subject to other restrictions. See WP:PD § Fonts and typefaces or Template talk:PD-textlogo for more information.
- queenkjuul 11mo agoI've had mixed results with this, recent versions of Adobe in particular gave me trouble. I've been meaning to try WinBoat, but it's based on the same underlying technology (docker+RDP) so I'm guessing I'll hit the same bugs. I was thinking maybe i could alter the code to launch a different RDP client instead of the default. Still, if you just need Office, it's a much more integrated setup than you can easily achieve with VMs.
- runsonrum 11mo agoI would be looking for a solution to run Minecraft official launcher in Linux. It is heavily integrated with Windows extras such as the Microsoft Store. This is the last holdout to get my children on Linux.
- jeena 11mo agoWhat's missing from the launcher available on Linux? I've been using it for many years, but I have never used in on Windows.
- specproc 11mo agoThere are two editions: Java and Bedrock. Bedrock is the one that's got Realms, which is the easy way to get servers running. Have this problem with my brother and nephew, would love to get the lad on Linux, but this is a real obstacle.
- Tajnymag 11mo agoWhat is missing from the unofficial Bedrock launcher? https://minecraft-linux.github.io/ https://minecraft-linux.github.io/
- Yehia_loay 11mo agoThis is cool, When i looked at this i thought it was just WinBoat, Turn's out, it's not But of course there isn't a way to run it at the same performance as if windows was installed as the main OS. You would always need some kind of virtualization. Anyways, This is a very cool project. Good luck!
- terra_nera 11mo agoIt really whips the llamas ass .... This popped into my head before I had a second to do a double take.
- phito 11mo agoHow good is it in practice? I've found windows VMs under a Linux host to be frustrating to use, and get poor performances no matter how much resources I throw at it. The clock keeps getting messed up all the time. UI is sluggish. I now use a dedicated windows laptop in RDP and it is such a better experience better than a VM.
- delta_p_delta_x 11mo ago> UI is sluggish You absolutely need to pass through a GPU so that DWM.exe is properly accelerated; otherwise, it falls back to the software-accelerated WARP and the performance tanks to ~15 FPS. It doesn't need to be anything powerful; if you have an idle integrated card that you aren't using on the Linux host because you only interact with it through a Web server or SSH (for instance, Proxmox), then pass that through. It's what I do on my home lab which runs a 9950X. Before people raise pitchforks against Linux, this applies there, too, for the record: at work I have a Linux instance just to myself that by any other metric is ridiculously powerful: 64-core Epyc, 96 GB memory, but no iGPU, so remote desktop works very poorly.
- mathfailure 11mo agoTo pass through a GPU - you'd need an extra GPU then..?
- hedora 11mo agoAlso, the last time I checked, many GPUs explicitly detect + block this because they want you to pay for more expensive datacenter versions of the hardware. Did something change?
- taskforcegemini 11mo agowhen did you check last time? I've been using gpu passthrough for more than the last ten years with different gpus from amd to nvidia to onboard intels. last few years I went back to native windows, because some games refused to run in a vm.
- BlaDeKke 11mo agoI tried this method for my wife. So she could use ms office in Linux. This isn’t an elegant solution. She’s back to windows 11. We tried…
- jeena 11mo agoI'm using MS Office for Work in the browser. But I just live with the shortcomings specifically in PowerPoint where I can't do connectors for example.
- BlaDeKke 11mo agoShe only uses that laptop for MS Office. She did actually use the browser version for a few months, but even that is a significant downgrade compared to native apps. MS Office and most popular multiplayer games are the 2 biggest hurdles for Linux adoption at the moment.
- t0bia_s 11mo agoMany creators would like to abandon Windows completely, bud Adobe...
- yonatan8070 11mo agoI tried using Office on the web for a bit, for some reason there's absolutely no way to disable auto-capitalization on the web, luckily I almost never need to use it anyway, and have LibreOffice and Google Workspace instead.
- burnt-resistor 11mo agoAt least use 11 Enterprise (24H2) to mostly avoid the nonstop cacophony of ads. I don't want to hear about 365 or OneDrive or OneNote or Copilot every 3 μs. Before AppVolumes got bought and became VMware App Volumes, there was Softricity (which became Microsoft App-V).. the app was actually a thin client to talk to a terminal server running the app in a container on a server. Office "installs" in 1 second because it's already "installed" on the app server. The next iteration was AppVolumes streams already installed apps like "Linux snaps" on-demand for Windows to do away with the separate terminal server.
- GaryBluto 11mo agoI 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.
- prox 11mo agoAs someone who is looking to go Linux, do most windows apps work now through Wine or VirtualBox ? I know Valve did a lot of work for games. It’s been 4 years since I even took a good look at it.
- Jnr 11mo agoA lot of them do, but for almost everything there are native alternatives. I haven't used Wine directly in years, only indirectly through Steam.
- SapporoChris 11mo agoMost things work great. There are some niche things that do not work so well. Example: SteamVR,Vive VR Hub, some AntiCheat for games.
- rft 11mo agoSteamVR 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. [1] https://lvra.gitlab.io/docs/fossvr/envision/ https://lvra.gitlab.io/docs/fossvr/envision/
- SapporoChris 11mo ago
- tonyhart7 11mo agoWindows have wsl and linux have wine,winapps etc at some point in the future, Your OS wouldnt matters because all OS is reaching feature parity
- fsflover 11mo agoThe OS matters, because if it belongs to a mega-corporation, it serves its goals, not yours. Examples: Windows spying on users, iOS not allowing 3rd-party apps without you providing all your private data to Apple.
- heavyset_go 11mo agoWon't happen because of remote attestation and integrity verification.
- xg15 11mo agoSo essentially the WSL in reverse? I'm kind of surprised you can "run Windows" in a Docker container at all. Isn't the fundamental restriction of Docker that all containers share the same (linux) kernel? Is there a way for docker to inject a "translation layer" somehow that makes it look like an NT kernel for the Windows processes?
- noisem4ker 11mo agoThe container runs a virtual machine using the host kernel's KVM device. Windows is then automatically installed inside said virtual machine. https://github.com/dockur/windows https://github.com/dockur/windows
- xg15 11mo agoAh, that makes more sense (and learned about KVM today, thank you.) So more accurately, it's Windows in a VM, and the VM host running in a container.
- joseda-hg 11mo agoJust for completeness sake, you can do native docker on windows on a windows host Just no cross Kernel Linux on Windows (Unless passing over WSL) or Windows On Linux (Unless you virtualize in other ways and use that) https://hub.docker.com/r/microsoft/windows#:~:text=How%20to%20Use,new%20host%20builds https://hub.docker.com/r/microsoft/windows#:~:text=How%20to%...
- mathfailure 11mo agoDoes this even work? podman run mcr.microsoft.com/windows:ltsc2019 Trying to pull mcr.microsoft.com/windows:ltsc2019... Error: choosing an image from manifest list docker://mcr.microsoft.com/windows:ltsc2019: no image found in manifest list for architecture amd64, variant "", OS linux
- yonatan8070 11mo agoThis runs a container then virtualizes Windows inside it using KVM
- mathfailure 11mo agoAs you can see - running the container doesn't work.
- shlip 11mo agoWell it will work nicely if you have a decently modern setup I guess. But I suspect the experience on a 10+ yo laptop would not be that great.
- 20k 11mo agoDoes anyone know if its possible to get shell integration working? The sole app keeping me on windows is tortoisegit: you right click, and get a bunch of git commands on your context menu. If there was any way to get this running in linux, I'd swap
- mcny 11mo agoThis is something I have not heard before. Can you please explain your use case a bit more? What commands do you run using right click? Do you strongly prefer this over a terminal window? You can have aliases if you'd like.
- 20k 11mo agoI do virtually everything through tortoisegit, and much prefer it over a CLI. When you right click, you get this: https://i.postimg.cc/hG4g8pjp/tgit.png https://i.postimg.cc/hG4g8pjp/tgit.png Which gives you basically everything you could ever possibly want. My main use cases for it vs a terminal interface are: 1. When you commit, you get this: https://i.postimg.cc/90YJBtz1/boaty.png https://i.postimg.cc/90YJBtz1/boaty.png Clicking the files brings up a diff, which makes pre commit reviews extremely easy. Its a lot faster to add files via an interface like this, rather than using a cli 2. The graphical log feature is pretty indispensable for complex projects. Eg check out this: https://i.postimg.cc/qRb76Wxj/godot-mergy.png https://i.postimg.cc/qRb76Wxj/godot-mergy.png This is much nicer than trying to do grok this through the cli for me. Reverting commits, cherrypicking, merges, splicing the history, seeing all the available branches, keeping track of orphaned commits etc, is all super easy 3. If I have to pick between not remembering the CLI commands off the top of my head, and having to memorise and alias a whole bunch of commands to be able to use git fully, I'll pick the former every day. Its the same reason I use an IDE I wouldn't object to it being a standalone tool, but the nice thing about it being on the context menu is that it doesn't intrude when you don't need it
- prmoustache 11mo agoAny modern IDE has those functionalities, and most of them run on Linux too. I don't think there is anything you have shown that warrants sticking to Tortoise Git instead of any other IDE. Also if you don't want to use an IDE Gnome's file manager nautilus supports scripts available on right click. This would allows you to run git commands from the file manager , show the information you need using [YAD](https://yad-guide.ingk.se/#_introduction https://yad-guide.ingk.se/#_introduction)
- nickjj 11mo agoIt's funny because I remember in 2014 before WSL, certain hypervisors like VMWare Player had the ability to run Linux apps in Windows using "unity" mode allowing Linux apps to be seamlessly blended in as regular Windows windows, complete with window decorations, alt tab, shortcuts, etc.. It worked well for what it did, I ran Sublime Text 2 back then in that way and other tools. This looks like an evolution of that, but in reverse. I wonder what the performance is like. Has anyone tried it on CPU / GPU intensive apps like video editing tools?
- pjmlp 11mo agoThe idea of blending applications is as old as X Windows servers on Windows like Hummingbird, although it wasn't virtualization, the remote X Windows applications would blend on the desktop.
- hypercube33 11mo agoThanks to search being trash there was a probject that let you run basically remote apps Linux to windows ie run the apps on a Linux host and the ux is handled on the windows client as a seamless local app. I think it mostly worked. I have no idea what the project was called and none of it was beyond alpha but it seemed really cool and possibly useful more than ever now
- pjmlp 11mo agoThat is basically X Windows, unless I am misunderstanding the description. X Windows server is the part that runs on the client. Hummingbird nowadays has a different name, https://www.rocketsoftware.com/en-us/products/remote-access/exceed https://www.rocketsoftware.com/en-us/products/remote-access/... There are also other options like X Win32, https://www.starnet.com/xwin32/ https://www.starnet.com/xwin32/
- aruggirello 11mo agoI'm pretty sure you can do the same with Windows apps in Linux, since you can basically do the same with VirtualBox seamless mode too. It only requires installing the "guest additions" drivers - there's no container involved. The only major issues I see there are precisely with alt-tab - you cycle through your host windows, then suddenly ALL guest ones (and you're stuck in the guest until you press right Ctrl) - why is it so difficult to make alt-tab flow inside and outside the VM - at least in seamless mode?
- jxdxbx 11mo agoI tried to get it set up so I could boot into my Windows partition natively and also boot it in a VM in Qemu on Linux and, what a nightmare.
- xrd 11mo agoFortnite? Then my kids can stop complaining and I can stop worrying about supporting Windows. They are happy as clams with Roblox and Minecraft on Ubuntu, and that makes me happy. I don't see anything mentioned in the issues/discussions nor on the upstream project.
- gruez 11mo agoOther people mentioned it runs on a VM so it probably won't work well for 3d games.
- knollimar 11mo agoisn't there wack anticheat there? Doubt it runs virtualized
- d3Xt3r 11mo agoYou can make it work if you spoof the VM's SMBIOS strings and rename some device objects so it's not obvious you're running in a VM. Plenty of guides on how to do this, eg: https://github.com/Scrut1ny/Hypervisor-Phantom https://github.com/Scrut1ny/Hypervisor-Phantom
- BrouteMinou 11mo agoLol, at that point I would just run Windows... What is the threshold where you are basically running Windows, and you have Linux installed just for some internet vanity? Play games? Run Windows games with Wine/Proton Coding? VSCode App? This thing... But at least I don't own Windows, sheej!
- __jonas 11mo agoI don't think it's about internet vanity, more about not constantly having advertisements or weird services / AI features pushed into your desktop environment. I'd love to just run windows if there was a version that didn't have this.
- BrouteMinou 11mo agoWhy not just disable them?
- __jonas 11mo agoBecause they constantly get re-enabled, or new ones get added, and I don't want to have to fight my OS this hard.
- b3ing 11mo agoI wish VMware ThinApp was still around
- the__alchemist 11mo agoIf this works as expect, I love it. I'm assuming the user doesn't need to manually configure the containers etc; it sounds like from the Readme it's low-friction. From a performance and disk space perspective, I'm not thrilled about containers. I think their existence here and in general cuts to a deeper concern we can fix. Here's what I'd like to see for GPOS software in general. (Win, Linux, Mac, any new ones we get) Minimal or no ABI barriers. You compile software for a given CPU architecture, and it just works on all suitable operating systems. No barriers; no friction. There are some OS specific things people use like file systems, threads, and allocators, but these are usually somewhat general, and are abstracted over by the programming language's standard libraries. This is a worthwhile goal, and technically is feasible. Within Windows, this generally works pretty well; I think a reasonable goal is to get this working within Linux as a whole. Then cross Win/Linux, and maybe even Mac. OSs should be making our lives easier; not putting up barriers. Especially with the Linux free/OSS mindset. I wish UX and Compatibility were part of the ethos too; I think it's relevant.
- vecdot 11mo agoJust some anecdata, I had a poor experience with this project. My setup used a qemu vm with gpu passthrough. I set the correct group policy settings to force the RDP host to use the vfio gpu. Compared to looking glass (looking-glass.io), winapps was unusably slow. Beyond that, I experienced app-breaking UI glitches in the Adobe CC tools. Love the concept, but in my experience this needs some more time to bake.
- exceptione 11mo agoNote that it currently only works with xfreerdp¹, so that means you share the X11 socket with this program. Although freerdp is also available for Wayland, the single app mode (aka RemoteApp aka RAILS) reportedly has not been implemented yet on the SDL port. 1. https://github.com/winapps-org/winapps/issues/779 https://github.com/winapps-org/winapps/issues/779