Run Windows Applications as Native Linux Windows with WinPodX – One‑Command Setup
WinPodX is an open‑source tool that uses Podman and FreeRDP to run full Windows containers on Linux, projecting each application as an independent native window with full Alt‑Tab integration, bidirectional file sharing, clipboard sync, and easy one‑command installation, offering a lightweight alternative to VMs and Wine.
What is WinPodX?
WinPodX is an open‑source MIT‑licensed Windows Pod system for Linux. It runs a lightweight Windows container using Podman and projects individual Windows applications to the Linux desktop via FreeRDP RemoteApp, making each app appear as a native Linux window.
Architecture
Container layer : Podman + KVM + dockur/windows – runs a full Windows container.
Projection layer : FreeRDP RemoteApp (RAIL) – projects a single app window to the Linux desktop.
Integration layer : .desktop files + WM_CLASS – integrates the app into the Linux taskbar and Alt‑Tab.
Key features
Seamless application windows – each Windows app runs in an independent Linux window with real icons, proper WM_CLASS, Alt‑Tab support, and multi‑monitor dragging.
Reverse‑open – from Windows Explorer, right‑click a file, choose Open with… and select a Linux app (e.g., VS Code) to edit and save back to the Windows file via SMB + kio‑fuse.
Bidirectional clipboard & file sharing – text and image copy/paste both ways; Linux home is auto‑mounted as \\tsclient\home; USB drives, audio, and printers are shared.
Virtual‑machine detection evasion (v0.7.0, disabled by default) – two disguise levels: balanced hides CPUID and KVM signatures; max patches QEMU to rewrite ACPI, disk, sensor, USB fingerprints. Verified with al‑khaser 0.82.
Smart operations – automatic pause when idle, rotating 20‑character passwords every 7 days, DPI auto‑adaptation for GNOME/KDE/Sway/Hyprland, automatic RDP service restart, and a Qt6 dashboard showing pod, RAM, and CPU usage.
Windows lean – telemetry, ads, Cortana, and search indexing are disabled, producing a cleaner Windows image.
Installation
Pre‑flight checks
BIOS VT‑x/AMD‑V enabled – check with lscpu | grep -i virtualization; enable in firmware if missing.
KVM module loaded – check with lsmod | grep kvm; load with sudo modprobe kvm_intel or kvm_amd.
User in kvm group – check with id -nG | grep kvm; add with sudo usermod -aG kvm $USER.
Hardware requirements: x86_64 or aarch64 CPU with virtualization, 8 GB + RAM (12 GB + recommended), 30 GB + free disk (64 GB + recommended), and a Windows ISO for the first install.
One‑click install (recommended)
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/install.sh | bashThe script configures Podman, downloads the Windows ISO, creates the container, and runs without manual intervention. First start takes 5–10 minutes; monitor progress with winpodx pod wait-ready --logs.
Package‑manager install
Ubuntu/Debian: sudo apt install ./winpodx_<version>_all_debian13.deb Fedora 42+:
sudo dnf config-manager addrepo ... && sudo dnf install winpodxArch: yay -S winpodx Nix: nix run github:kernalix7/winpodx AppImage: download, chmod +x, then
./winpodx-*-x86_64.AppImage setupAfter package install, run winpodx setup once.
Custom install directory
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/install.sh | bash -s -- --storage-dir /path/to/large-diskDevelopment version
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/install.sh | bash -s -- --mainUsage
Initial setup
# Default configuration, no prompts
winpodx setup
# Interactive wizard – choose backend, CPU cores, memory, Windows version
winpodx setup --customizeStart container
winpodx pod start --wait
winpodx autostart onRun Windows apps
# List available apps
winpodx app list
# Install all apps to the desktop menu
winpodx app install-all
# Run a specific app, e.g., Word
winpodx app run word
# Open a file with Word
winpodx app run word ~/doc.docx
# Launch full Windows desktop
winpodx app run desktop
# Quick launcher (similar to Windows Start menu)
winpodx launchAfter winpodx app install-all , Windows apps appear in the Linux application launcher and can be started with a single click.
Install new Windows apps
Open Windows desktop: winpodx app run desktop Download and install the .exe inside Windows.
Refresh the list on Linux: winpodx app refresh Install to the Linux menu: winpodx app install <app‑name> Alternatively, launch the GUI manager with winpodx gui and use “Add App”.
Access Linux files from Windows
The Linux home directory is automatically mounted inside the container as \\tsclient\home. Windows Explorer shows a “Linux Apps” folder that lists available Linux applications for “Open with…”.
Diagnostics & repair
# Read‑only diagnostics
winpodx doctor
# Auto‑fix common issues
winpodx doctor --fix
# Apply client‑side fixes
winpodx guest apply-fixes
# Sync updates to running container
winpodx guest syncDisk management
# Grow Windows virtual disk
winpodx install grow-disk 100G
# Show disk usage
winpodx install disk-usageDevice passthrough
# List passthrough‑capable devices
winpodx device list
# Attach a USB device
winpodx device attach <id>
# Detach a device
winpodx device detach <id>Configuration tweaks
# Set maximum VM disguise level
winpodx config set pod.disguise_level max
# Change UI language
winpodx language zh
# Show current config
winpodx config showComparison
Compatibility : WinPodX 100 % (real Windows kernel); Wine/Bottles partial; VM 100 %.
Window experience : WinPodX and Wine provide native Linux windows; VM uses full‑screen desktop or nested window.
Resource usage : WinPodX medium (container + RDP); Wine low; VM high.
GPU performance : WinPodX RDP rendering with some loss; Wine via DXVK/VKD3D may be faster; VM with GPU passthrough is best.
Configuration difficulty : WinPodX one‑command install; Wine requires version‑specific patches and regedit; VM needs ISO download and VM setup.
File sharing : WinPodX bidirectional automatic (SMB + kio‑fuse); Wine one‑way manual; VM manual shared folder.
Clipboard : WinPodX bidirectional (text + image); Wine mostly one‑way; VM bidirectional but poor UX.
Selection guidance:
Use Wine when it works – better speed and GPU.
Use WinPodX when Wine fails – 100 % compatibility and native window experience.
Use a traditional VM with GPU passthrough when direct GPU access is required.
Important notes
Memory: at least 8 GB (12 GB + recommended); Windows container itself uses ~4 GB.
Disk: initial Windows ISO ~5 GB; virtual disk grows, 64 GB + recommended.
First start takes 5–10 minutes; monitor with winpodx pod wait-ready.
Graphics may occasionally show input lag or minor artifacts, but overall functional.
Beta status: current v0.7.3, rapid iteration, some features may be unstable.
Uninstall
Keep VM data (re‑installable):
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/uninstall.sh | bash -s -- --confirmFull purge (including container and all data):
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/uninstall.sh | bash -s -- --purgeProject links
github.com/kernalix7/winpodx winpodx.org License: MIT
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Ubuntu
Focused on Ubuntu/Linux tech sharing, offering the latest news, practical tools, beginner tutorials, and problem solutions. Connecting open-source enthusiasts to build a Linux learning community. Join our QQ group or channel for discussion!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
