WinApps: Run Windows Applications on Linux as Native Windows
Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/
At a glance
- What is it?
- WinApps is a Shell-based tool for running Windows applications on GNU/Linux with KDE Plasma, GNOME or XFCE, using a Windows virtual machine and FreeRDP to render individual apps alongside native ones. It suits users who need Microsoft 365 or Adobe Creative Cloud on Linux and can accept a VM and RDP dependency.
- Who is it for?
- WinApps is for Linux users who need Microsoft 365 or Adobe Creative Cloud and can run a Windows VM with FreeRDP. It is not for anyone needing kernel-level anti-cheat titles, or for users who cannot allocate the RAM, CPU cores and disk the compose.yaml declares.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 15 days ago.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What WinApps Solves and Who It Is For
Linux users who need Microsoft 365 or Adobe Creative Cloud often keep a second machine or dual-boot. WinApps takes a different route: it runs Windows inside a Docker, Podman or libvirt virtual machine, then exposes selected Windows applications on the host desktop as if they were native. The README describes the goal as running Windows applications on GNU/Linux with KDE Plasma, GNOME or XFCE, integrated as if they were native to the OS. The project is a hard fork of Fmstrat/winapps, and the repository lists topics including cassowary, docker, freerdp, gnome, kde, libvirt, nix-flake, podman, qemu, wine and xfce. The audience is narrow but real: people on Ubuntu, Fedora, Arch or Linux Mint who must run Windows-only productivity or creative software and are willing to maintain a VM. It is not a Wine wrapper, and it does not translate Windows system calls. It runs a real Windows installation and streams the applications out.
The FreeRDP and VM Mechanism Behind WinApps
The README lists four steps. WinApps runs Windows in a Docker, Podman or libvirt virtual machine. It queries Windows for all installed applications. It creates shortcuts to selected Windows applications on the host GNU/Linux OS. It uses FreeRDP as a backend to render Windows applications alongside GNU/Linux applications. The compose.yaml in the repository confirms the VM side: it uses the image ghcr.io/dockur/windows:latest, names the container WinApps, and sets VERSION to "11", RAM_SIZE to "4G", CPU_CORES to "4", and DISK_SIZE to "64G". Ports 8006, 3389/tcp and 3389/udp are bound to 127.0.0.1, which gives a VNC web interface at http://127.0.0.1:8006 and RDP on 3389. Two integration details matter. The GNU/Linux /home directory is accessible within Windows via the \\tsclient\home mount, and Nautilus integration lets you right-click files to open them with specific Windows applications based on the file MIME type. Application discovery is two-tier: community tested applications get high-resolution icons and pre-populated MIME types, while other .exe files found in the Windows Registry get icons pulled from the .exe itself.
Installing WinApps and Running Your First Windows Application
The repository has a setup.sh at the top level, an install/ directory, a compose.yaml and a default.nix and flake.nix for Nix users. The README does not print a full step-by-step install command in the available documentation, so treat setup.sh as the entry point and read it before running it. The compose.yaml is the file that defines the Windows VM, and its comments point to the dockur/windows documentation for valid VERSION options and custom images. Edit the Windows username and password before first boot:
environment:
VERSION: "11"
RAM_SIZE: "4G"
CPU_CORES: "4"
DISK_SIZE: "64G"
USERNAME: "MyWindowsUser"
PASSWORD: "MyWindowsPassword"
HOME: "${HOME}"The defaults are MyWindowsUser and MyWindowsPassword, and the file says to edit them. Bring the VM up with Docker Compose from the repository root:
docker compose up -dAfter the VM starts, open http://127.0.0.1:8006 for the VNC web interface to complete Windows setup. RDP is exposed on 127.0.0.1:3389 for both TCP and UDP, which is what FreeRDP connects to. Once Windows is installed and your applications are present, WinApps queries Windows, lists the installed applications, and creates host shortcuts for the ones you select. The README notes that the official taskbar widget, WinApps-Launcher, is the intended way to administer the Windows subsystem and launch applications.
Where WinApps Breaks: Anti-Cheat, Resources and Application Coverage
The README is unusually direct about one limitation: support does not extend to kernel-level anti-cheat systems, such as Riot Vanguard. That rules out a large class of competitive games regardless of how well the rest of the stack works. Resource allocation is the second constraint. The shipped compose.yaml asks for 4 GB of RAM, 4 CPU cores and a 64 GB primary disk, and those are defaults, not minimums; a machine that cannot spare them will struggle. The third issue is application detection. Community tested applications get high-resolution icons and MIME types, but the README warns that this list is community-driven and that some applications may not be tested and verified by the WinApps team. Applications outside that list are found through the Windows Registry, and their icons come from the .exe files, which is a visibly rougher result. The fourth is the Office link behaviour: Microsoft Office links such as ms-word:// from the host system open in the Windows subsystem, but the README notes you may need a User Agent Switcher extension set to a Windows user agent, because the Office web apps typically hide the Open in Desktop App option for Linux users. That is a workaround, not a fix.
WinApps Compared With Wine and With Running Windows Directly
Wine reimplements the Windows API on Linux, so applications run as Linux processes without a Windows licence or a VM, and they can be faster and lighter. The trade-off is compatibility: complex applications that depend on deep Windows behaviour often fail or need per-application fixes. WinApps does not reimplement anything. It runs a real Windows installation in a VM and streams windows over FreeRDP, so anything that runs on Windows runs here, subject to the anti-cheat exclusion. The cost is a full Windows VM, a Windows licence, and the RAM, CPU and disk that compose.yaml declares. The other comparison is simply running Windows in a VM and using it as a desktop. That works, but you lose the integration: WinApps creates host shortcuts, wires MIME types so Nautilus can open files in Windows applications, and mounts /home into Windows at \\tsclient\home. If you only need one Windows application occasionally, a plain VM window is less machinery. If you need Windows applications to behave like part of your desktop, WinApps is the layer that does that.
Maintenance, Licensing and the Cost of a Hard Fork
The repository is not archived, and the last push was on 2026-09-14, so the project is being changed. The licence field on the repository reads NOASSERTION, which means GitHub could not map the LICENSE.md file to a standard identifier. Read LICENSE.md and COPYRIGHT.md directly before you redistribute anything or build on the code; this article cannot tell you what those files permit. The maintenance cost for an adopter is the VM, not the scripts. Windows updates, the dockur/windows image tag (ghcr.io/dockur/windows:latest is a moving tag, not a pinned version), and the FreeRDP connection all sit under your control. The repository includes renovate.json and a .pre-commit-config.yaml, which suggests dependency updates and pre-commit checks are part of the maintainers' workflow. For Nix users there are default.nix, flake.nix and flake.lock, so the project tracks a Nix packaging path alongside the Compose path. The hard fork from Fmstrat/winapps means upstream fixes do not arrive automatically; you are following this fork's commit history.
Editorial conclusion
WinApps is for Linux users who need Microsoft 365 or Adobe Creative Cloud and can run a Windows VM with FreeRDP. It is not for anyone needing kernel-level anti-cheat titles, or for users who cannot allocate the RAM, CPU cores and disk the compose.yaml declares. Before adopting, verify that your chosen backend (Docker, Podman or libvirt) is installed, that the VERSION, RAM_SIZE, CPU_CORES and DISK_SIZE values in compose.yaml fit your machine, and that your applications appear in the community tested list or are detected through the Windows Registry.
Frequently asked questions
What is WinApps?
WinApps runs Windows applications on GNU/Linux with KDE Plasma, GNOME or XFCE, integrated as if they were native to the OS. It runs Windows in a Docker, Podman or libvirt virtual machine, queries Windows for installed applications, creates host shortcuts, and uses FreeRDP to render the applications.
How do I install WinApps?
The repository contains a setup.sh at the top level plus an install/ directory, and a compose.yaml that defines the Windows VM. The compose.yaml uses the image ghcr.io/dockur/windows:latest and sets VERSION, RAM_SIZE, CPU_CORES, DISK_SIZE, USERNAME and PASSWORD, and the README says to edit the username and password. The documentation does not print a complete install command sequence, so read setup.sh before running it.
how to use winapps on linux
Start the Windows VM with docker compose up -d from the repository root, then open http://127.0.0.1:8006 for the VNC web interface to finish Windows setup. RDP is exposed on 127.0.0.1:3389, which FreeRDP connects to. WinApps then queries Windows for installed applications and creates host shortcuts for the ones you select.
how to install winapps on ubuntu
The repository provides setup.sh and compose.yaml, and the compose.yaml starts the Windows VM through Docker or Podman. The documentation available here does not give a separate Ubuntu-specific command sequence, so the same repository entry points apply.
how to install winapps on fedora
The README names Fedora among the supported GNU/Linux distributions alongside Ubuntu, and the compose.yaml supports Docker or Podman as the container backend. Podman is the usual choice on Fedora, and the compose.yaml comments note the Podman volume location. The documentation does not print a Fedora-specific install command.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/winapps-org-winapps)
Community notes