WinApps enables seamless integration of Windows applications on geckoforge by running Windows in a Docker container and using FreeRDP to render applications as if they were native Linux programs. This allows you to run Microsoft Office, Adobe Creative Cloud, and other Windows-only applications without dual-booting or switching desktops.
WinApps works by:
- Running Windows 11 in a Docker container with KVM acceleration
- Automatically downloading Windows ISO from Microsoft servers (legal and automated)
- Querying Windows for installed applications
- Creating Linux shortcuts for selected Windows applications
- Using FreeRDP to render Windows applications seamlessly alongside Linux apps
-
Ensure Docker is configured:
./scripts/setup-docker.sh
-
Run the WinApps setup script:
./scripts/setup-winapps.sh
-
Edit the configuration file:
nano ~/.config/winapps/winapps.confSet your desired Windows username and password (used within the VM only).
-
Create the Windows VM:
winapps-setup
Follow the interactive wizard to:
- Select Windows 11 (downloaded automatically from Microsoft)
- Configure VM resources (recommend 4-6 CPU cores, 8-16GB RAM, 50GB+ disk)
- Wait for automated Windows installation (~30-60 minutes)
-
Install Windows applications: After Windows boots, install your desired applications (Office, Adobe CC, etc.) inside the Windows VM, then run:
winapps-setup --install-apps
Enable WinApps via Home-Manager for reproducible configuration:
# home/home.nix or custom overlay
programs.winapps = {
enable = true;
rdpUser = "WinAppsUser";
rdpPassword = "YourSecurePassword";
displayScale = 100; # 140 or 180 for HiDPI
backend = "docker";
# Optional: Install system tray launcher
launcher = true;
# Optional: Auto-pause VM when inactive
autoPause = {
enable = true;
timeout = 300; # 5 minutes
};
};Apply changes:
home-manager switch --flake ~/git/homeWinApps supports ALL Windows applications, including:
- Microsoft Office (Word, Excel, PowerPoint, Outlook, etc.)
- Adobe Creative Cloud (Photoshop, Illustrator, Premiere Pro, etc.)
- Affinity Suite (Designer, Photo, Publisher)
- Visual Studio
- AutoCAD/Fusion 360
- Game engines (Unity, Unreal, GameMaker)
- Any custom Windows executable
Community-tested applications benefit from high-resolution icons and MIME type integration for seamless file opening.
For high-DPI displays, adjust the scale factor:
RDP_SCALE="140" # or 180Add to RDP_FLAGS in winapps.conf:
RDP_FLAGS="/cert:tofu /sound /microphone +home-drive /multimon"For better performance, try adding:
RDP_FLAGS="/cert:tofu /sound /microphone +home-drive /network:lan /gfx"For devices like drawing tablets, microphones, or webcams:
- Stop WinApps:
winapps stop - Enable experimental USB passthrough in Docker
- Restart:
winapps start
See upstream documentation for USB passthrough details.
Your Linux /home directory is automatically mounted in Windows at:
\\tsclient\home
Files can be accessed bidirectionally. Nautilus integration allows right-clicking files to open with Windows applications based on MIME types.
Edit during initial setup or later via winapps-setup --reconfigure:
- CPU: 4-6 cores recommended (don't exceed physical core count)
- RAM: 8-16GB recommended for creative applications
- Disk: 50GB minimum, 100GB+ for Adobe Creative Cloud
Automatically pause the Windows VM when inactive to save resources:
AUTOPAUSE="on"
AUTOPAUSE_TIME="300" # 5 minuteswinapps start # Start Windows VM
winapps stop # Stop Windows VM
winapps restart # Restart Windows VM
winapps pause # Pause Windows VM
winapps resume # Resume Windows VMThe WinApps Launcher provides a system tray widget for quick access:
- Launch installed Windows applications
- Control Windows VM (start/stop/pause)
- Open full RDP desktop session
- View VM status at a glance
Install via Home-Manager:
programs.winapps.launcher = true;Or manually:
# Via Nix profile
nix profile install github:winapps-org/winapps#winapps-launcherAfter installation, Windows applications appear in your KDE application menu under "Windows" category.
winapps <application-name>For applications not configured by the installer:
winapps manual "C:\Program Files\MyApp\MyApp.exe"Open a complete Windows desktop:
winapps windowsIf you see certificate warnings after VM recreation:
rm ~/.config/freerdp/server/127.0.0.1_3389.pemIncrease boot timeout in winapps.conf:
BOOT_TIMEOUT="180"Increase scan timeout:
APP_SCAN_TIMEOUT="120"-
Verify KVM is enabled:
lscpu | grep VirtualizationShould show
AMD-VorVT-x. -
Check VM resource allocation isn't over-committed
-
Disable window animations in Windows settings
-
Use
/network:lanflag for better performance
openSUSE Leap 15.6 may ship older FreeRDP. Check version:
xfreerdp3 --versionIf < 3.0, install via Flatpak:
flatpak install flathub com.freerdp.FreeRDP
sudo flatpak override --filesystem=home com.freerdp.FreeRDPUpdate winapps.conf:
FREERDP_COMMAND="flatpak run --command=xfreerdp com.freerdp.FreeRDP"Remove /multimon from RDP_FLAGS due to FreeRDP bug.
- Ensure Windows VM is running:
winapps start - Check logs:
~/.local/share/winapps/winapps.log - Verify application is installed in Windows
- Re-run application detection:
winapps-setup --install-apps
winapps-setup --updateOr via Home-Manager:
nix flake update ~/git/home
home-manager switch --flake ~/git/homeThe winapps.conf file contains Windows credentials. Ensure proper permissions:
chmod 600 ~/.config/winapps/winapps.confThe Windows VM is containerized but shares:
- Home directory (via
+home-drive) - Removable media
- Network access
Treat the Windows environment as you would your host system regarding:
- Password reuse
- Software downloads
- Network connections
If Windows becomes compromised within the VM:
- Files in shared
/homedirectory are accessible - Network access could enable lateral movement
- Consider using a separate user account for sensitive work
Kernel-level anti-cheat systems (Riot Vanguard, EAC, BattlEye) will not work in virtualized environments.
WinApps uses RemoteApp protocol, which has limited GPU acceleration. For GPU-intensive work:
- Video editing (Premiere, DaVinci Resolve) may be sluggish
- 3D rendering will be slow
- Gaming is not recommended
Consider dual-boot or GPU passthrough solutions for these use cases.
Expect ~10-20% performance penalty compared to native Windows due to:
- Virtualization overhead
- RDP protocol latency
- Network stack traversal
To use a specific Windows ISO instead of auto-download:
winapps-setup --iso /path/to/windows.isoRun multiple VMs for different Windows versions:
WAFLAVOR="docker" VM_NAME="Windows10" winapps-setup
WAFLAVOR="docker" VM_NAME="Windows11" winapps-setupFor advanced networking (static IPs, custom DNS):
docker network create winapps-net --subnet=172.20.0.0/16Then update Docker run configuration in WinApps.
- Official WinApps Repository: https://github.com/winapps-org/winapps
- WinApps Launcher: https://github.com/winapps-org/winapps-launcher
- FreeRDP Documentation: https://github.com/FreeRDP/FreeRDP/wiki
- Docker Documentation: https://docs.docker.com/
- geckoforge Docker Setup: docker-nvidia.md
- Install Adobe Creative Cloud inside Windows VM
- Sign in with Adobe account
- Download Photoshop, Illustrator, etc.
- Access Linux files via
\\tsclient\home - Edit files, save directly to Linux filesystem
- Install Office 365 inside Windows VM
- Sign in with Microsoft account
- Use Word, Excel, PowerPoint as native-looking apps
- Open Office files from Linux file manager via right-click
- Install Unity Hub inside Windows VM
- Create/open Unity projects from
\\tsclient\home\projects - Edit in Unity (Windows), version control from Linux
- Build Windows executables without dual-boot
For tools like Visual Studio, SQL Server Management Studio, or legacy corporate applications that must run on Windows.