WinPodX 是一款開源專案,旨在為 Linux 提供 Windows 應用程式的 pod 系統。
將每個 Windows 應用程式呈現為原生 Linux 視窗 — 具備真實圖示、真實 WM_CLASS、可釘選至任務列。透過 FreeRDP RemoteApp + dockur/windows。零設定。
Windows 的「關於」、「工作管理員」、「PowerShell」各自獨立顯示在 Linux 視窗中,同時還有 WinPodX Dashboard(即時 Pod / RAM / CPU 指標、工作區圖塊)。
無全螢幕 RDP。每個 Windows 應用程式都變成自己的 Linux 視窗,帶有真實圖示 — 可釘選、可 Alt+Tab、可檔案關聯,雙向支援。僅在您真正需要時才進入完整的 Windows 桌面(winpodx app run desktop)。
WinPodX 在後台運行一個 Windows 容器(透過 dockur/windows),並透過 FreeRDP RemoteApp 將 Windows 應用程式呈現為原生 Linux 應用程式,同時客體內部的 bearer-authed HTTP 代理處理主機到客體的命令通道,而無需閃爍 PowerShell 視窗。反向通道 — Linux 應用程式出現在 Windows 的「開啟方式…」選單中 — 由一個主機端監聽器處理,該監聽器消耗客體內部的每個 slug 的 Rust shims 寫入的 JSON 請求。外部 Python 依賴項幾乎為零(Python 3.11+ 僅標準庫;3.9/3.10 上有一個純 Python 的 tomli 備用方案)。
在安裝之前,請確保您的機器實際支援虛擬化。WinPodX 在 KVM 支援的容器中運行 Windows;沒有這三個條件,安裝將順利完成,但 Windows 永遠無法啟動。
硬體:支援虛擬化擴展的 x86_64 或 aarch64 CPU,8 GB+ RAM(建議 12 GB+),約 30 GB 的可用磁碟空間用於 Windows 映像。如果套件安裝步驟後缺少 /dev/kvm,install.sh 會以相同的診斷訊息中止 — 大多數「安裝順利但 Windows 永遠無法啟動」的錯誤報告都追溯到上述任一項。
單行命令(任何支援的 Linux 發行版):
在套件管理器 / AppImage 安裝後:執行一次 winpodx setup 以生成 ~/.config/winpodx/winpodx.toml + compose.yaml。curl 單行命令會為您完成此操作(並等待約 5-10 分鐘以完成 Windows 的首次啟動);套件安裝僅提供二進位檔,因此 apt install / dnf install / yay -S / 首次 AppImage 啟動不會突然觸發 10 分鐘的 Windows ISO 下載。設定完成後,僅啟動應用程式(winpodx app run desktop)會在第一次時自動配置 pod。
精簡版 AppImage(0.6.0)僅捆綁 Python + Qt + winpodx + FreeRDP — 容器運行時位於主機上(建議使用 podman ≥ 4,也支援 docker),因此 AppImage 不再與您已有的主機堆疊衝突(#357, #363)。0.6.0 之前的胖 AppImage 捆綁了整個 podman 堆疊並覆蓋了主機的。剩餘的主機端要求:透過您的套件管理器安裝容器運行時、/dev/kvm、kvm 群組成員資格,以及 rootless Podman 的 /etc/subuid / /etc/subgid。winpodx setup-host 透過單一 pkexec 提示來修復 kvm / subuid 部分;winpodx doctor 會顯示任何仍然缺失的項目。
更新。重新執行相同的單行命令以獲取最新版本 — 它會偵測到現有安裝並就地升級,保留您的設定和 Windows VM;正在運行的系統匣 / GUI 會自行重新啟動,以便新版本生效。這在 Bazzite 和其他 rpm-ostree 主機上也能正常工作(無需 --main,無需清除 VM)。透過套件管理器或 AppImage 安裝?以您安裝的方式更新它 — 透過您的套件管理器,或從最新版本下載更新的 .deb / .rpm / AppImage。
請參閱 docs/INSTALL.md 以了解離線 / 氣隙構建、原始碼安裝、版本固定、更新和解除安裝。
如果您使用了 curl install.sh 單行命令,設定已運行,Windows VM 正在啟動 -- 跳至啟動。對於所有其他安裝路徑(套件管理器、AppImage、原始碼、pip),請在首次啟動應用程式前執行一次 setup:
Setup 會寫入 ~/.config/winpodx/winpodx.toml + compose.yaml,註冊 GUI 啟動器,並確認主機具備 FreeRDP + Podman / Docker + KVM。如果其中任何一項缺失,輸出將以每個發行版的安裝命令結束(例如,Debian / Ubuntu 上為 sudo apt install xfreerdp3 podman podman-compose,Fedora 上為 sudo dnf install ...)-- 執行它並重新執行 winpodx setup。
首次啟動應用程式後,將配置 pod,下載 dockur 映像,運行 Windows ISO 下載 + Sysprep + OEM 套用,並在大約 5-10 分鐘內達到可用的 RDP 會話。winpodx pod wait-ready --logs 會實時跟蹤容器進度,以便您觀看每個階段:
之後隨時運行 winpodx doctor 以重新檢查主機狀態並在出現問題時顯示下一個修復命令:
或者,只需點擊應用程式選單中的應用程式圖示。winpodx launch 會開啟一個可搜尋的 Windows 應用程式選擇器 — 將其綁定到桌面環境的自訂快捷方式(KDE:系統設定 → 快捷方式 → 自訂;GNOME:設定 → 鍵盤 → 自訂快捷方式)以實現系統範圍的熱鍵。請參閱 docs/USAGE.md 以了解完整的 CLI、Qt6 GUI、健康檢查和設定。
裸機偽裝(規避虛擬機偵測)— 0.7.0 版本新增 · 可選,預設關閉
請參閱 docs/FEATURES.md 以深入了解,包括多會話 RDP 內部機制、應用程式設定檔架構和反向開啟架構。
每個標籤推送(v*.*.*)都會自動發佈到所有頻道 — 請參閱 packaging/ 以了解維護者詳細資訊。
請參閱 CONTRIBUTING.md 以了解開發設定、分支命名、提交約定和 CI 期望。
有關安全問題,請遵循 SECURITY.md 中的流程。
如果 WinPodX 讓您的 Linux 桌面變得更好:
GitHub Sponsors 支持定期或一次性贊助;Ko-fi 處理國際信用卡和 PayPal;fairy.hada.io 是一個韓國打賞平台。錯誤報告、PR 和儲存庫的星標同樣受到讚賞且免費。
MIT — Kim DaeHyun ([email protected])