WinApps:在Linux上如原生般运行Windows应用
【免费下载链接】winappsRun 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/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
WinApps 在后台跑一台 Windows 虚拟机(Docker、Podman 或 libvirt),再通过 FreeRDP 把 Microsoft 365、Adobe 这类 Windows 应用直接渲染到 GNOME/KDE 桌面。应用菜单里有原生图标,Nautilus 右键能按文件类型选 Windows 程序打开,日常使用和原生应用没有区别。
它是怎么做到的
整个过程的核心是 KVM 虚拟机加 FreeRDP 的 RemoteApp 模式。compose.yaml 指定 Windows 版本、内存和 CPU 核数,容器负责自动装好系统并打好 RDP 相关补丁;安装程序连进虚拟机后扫描注册表,把检测到的 .exe 连同社区提供的高分辨率图标和 MIME 类型登记到 Linux 的~/.local/share/applications下。每次点击启动器,实际是建立一条 FreeRDP 会话,只把目标应用的窗口画面传回桌面,而不是整块远程屏幕。主机的/home目录同时挂到 Windows 的\\tsclient\home,两边读写的是同一份文件。
五分钟跑起来 ⏱️
- 克隆仓库并进入目录:
git clone https://gitcode.com/GitHub_Trending/wina/winapps.git && cd winapps- 先装好 Docker,在 compose.yaml 里改
USERNAME、PASSWORD(按需调RAM_SIZE、CPU_CORES),启动容器装 Windows:
docker compose --file ./compose.yaml up浏览器打开 http://127.0.0.1:8006,在 VNC 里完成系统安装和初始设置。
- 安装宿主依赖(Debian/Ubuntu,其他发行版包名略有不同,参考 README):
sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd- 创建
~/.config/winapps/winapps.conf,核心字段只有这几个:
RDP_USER="MyWindowsUser" RDP_PASS="MyWindowsPassword" RDP_IP="127.0.0.1" WAFLAVOR="docker" RDP_SCALE="100"其余十几个选项(多显示器、自动暂停、日志等)在 README 的完整配置模板里都有注释。
- 保持 Windows 容器开机,跑安装向导:
bash ./setup.sh向导让你选当前用户还是系统级安装、手动挑选还是自动装全部受支持应用。如果卡住,先用xfreerdp3 /u:"MyWindowsUser" /p:"MyWindowsPassword" /v:127.0.0.1:3389 /cert:tofu验证 RDP 通不通。
实际使用场景 🖥️
- 从应用菜单启动 Office:装完后 Word、Excel、PowerPoint 都带着原生图标出现在应用菜单里,点击后窗口直接落在 GNOME 桌面上,可以像本地程序一样移动、缩放、切换工作区。
- 右键文件选 Windows 程序打开:在 Nautilus 里对 PDF 点右键,"Open With" 中会列出 Acrobat、Word 这类 Windows 应用,按 MIME 类型自动关联;文件从 Windows 侧经
\\tsclient\home直接读 Linux 磁盘,不产生拷贝。 - 管理整个 Windows 子系统:装上可选的 WinApps-Launcher 任务栏小组件后,从托盘菜单启动、暂停、重启 Windows 虚拟机,或直接从列表点开任一已安装应用;主机上的
ms-word://等 Office 链接也会自动转给 Windows 子系统处理。
进阶调优
RDP_SCALE:支持 100/140/180 三档缩放,UHD 屏按需选择RDP_FLAGS:/multimon多显示器(黑屏就回退)、/kbd:unicode非英语输入、/network:lan提速AUTOPAUSE="on":闲置AUTOPAUSE_TIME秒后自动暂停 Windows 容器,最低 20 秒DEBUG="true":每次启动应用都在~/.local/share/winapps/winapps.log追加日志HIDEF="off":窗口最大化时位置错位可以试试关掉
踩坑速查 🛠️
- FreeRDP 报证书名称不匹配 / 主机密钥变更→ 删掉
~/.config/freerdp/server/下对应的<VM-IP>_<端口>.pem再重连 - Debian 12 装不到 freerdp3-x11→ 开启 backports 源再安装
- 端口检查或 RDP 连接超时→ 在配置里调大
PORT_TIMEOUT、RDP_TIMEOUT(默认 5 秒 / 30 秒) - 带内核级反作弊的游戏启动失败→ 属于能力边界(如 Riot Vanguard),不是配置问题
WinApps 把"在 Linux 上用 Office 和 Adobe"拆成了装一个容器、跑一次向导,之后 Windows 应用就和原生程序一样躺在应用菜单里。更完整的配置说明、libvirt 直通和 Nix 安装方式见 README、docs/docker.md 和 docs/libvirt.md。
【免费下载链接】winappsRun 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/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考