WinApps:在Linux上如原生般运行Windows应用
2026/9/11 3:38:42 网站建设 项目流程

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,两边读写的是同一份文件。

五分钟跑起来 ⏱️

  1. 克隆仓库并进入目录:
git clone https://gitcode.com/GitHub_Trending/wina/winapps.git && cd winapps
  1. 先装好 Docker,在 compose.yaml 里改USERNAMEPASSWORD(按需调RAM_SIZECPU_CORES),启动容器装 Windows:
docker compose --file ./compose.yaml up

浏览器打开 http://127.0.0.1:8006,在 VNC 里完成系统安装和初始设置。

  1. 安装宿主依赖(Debian/Ubuntu,其他发行版包名略有不同,参考 README):
sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd
  1. 创建~/.config/winapps/winapps.conf,核心字段只有这几个:
RDP_USER="MyWindowsUser" RDP_PASS="MyWindowsPassword" RDP_IP="127.0.0.1" WAFLAVOR="docker" RDP_SCALE="100"

其余十几个选项(多显示器、自动暂停、日志等)在 README 的完整配置模板里都有注释。

  1. 保持 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_TIMEOUTRDP_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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询