首页 开源项目 15k Star 优雅,Linux 桌面跑所有 Win 应用!

15k Star 优雅,Linux 桌面跑所有 Win 应用!

肯定有很多小伙伴日常是把 Linux 当主力系统的,写代码、搭环境都超爽。

但遇到要打开 .docx高级格式、用 Visio 画流程图、或者客户发来必须用 Adobe 打开的文件时……就尴尬了。

双系统?来回切换太麻烦。开虚拟机?资源吃掉一大半,体验还割裂。用 Wine?配置复杂不说,兼容性还得看运气。

最近在Github上发现一个叫WinApps的项目,不模拟、不兼容层,直接跑一份真实的 Windows,像原生应用一般。


项目简介

winapps是一个在 GitHub 上已收获 15.3k Star 的开源项目。

它可以让你在 Linux 上运行 Windows 应用,让它们看起来和用起来,跟原生 Linux 应用没什么两样。


它的原理并不神秘——在底层用 Docker、Podman 或 libvirt 跑一个 Windows 虚拟机,然后通过 FreeRDP 把 Windows 应用的窗口"投影"到 Linux 桌面上。

跟 Wine 不同,winapps 跑的是真正的 Windows,兼容性有保障。跟传统虚拟机不同,你不需要每次都打开 Windows 桌面,应用窗口直接融入你的 Linux 工作区,混在一起都看不出区别。

支持 GNOME、KDE Plasma、XFCE 等主流桌面环境,主流发行版(Ubuntu、Fedora、Arch、openSUSE、Gentoo)均有覆盖。

功能特色

  • 真正的"原生感"集成

Windows 应用打开后就是一个普通窗口,跟你的 Linux 原生应用并排摆在任务栏里,可以正常切换、拖拽、最大化,完全没有虚拟机的割裂感,第一次看到的时候确实有点震惊。

  • 支持全部 Windows 应用,不只是 Office
  • 图片

winapps 理论上支持所有 Windows 程序,包括注册表里能检测到的任意 .exe 文件。官方社区已预配置并测试了一大批常用应用,涵盖 Microsoft 365 全家桶、Adobe Creative Cloud、Affinity 系列,以及命令提示符、PowerShell 等。只要 Windows 上能跑的,基本都可以尝试。

  • Linux 的 Home 目录自动挂载到 Windows

安装好之后,Linux 的 /home 目录会自动挂载到 Windows 虚拟机里(路径是 \\tsclient\home),两个系统之间的文件共享变得非常顺手,不需要搞什么共享文件夹。

  • 系统托盘轻松管理 VM

官方配套提供了一个轻量小工具 WinApps Launcher,常驻系统托盘,可以一键启动、暂停、重启或休眠 Windows 虚拟机,也可以直接从托盘列表里点开某个 Windows 应用,整体体验相当顺畅。

  • Office 链接自动跳转

Linux 浏览器里点击 ms-word:// 这类 Office 协议链接,会自动唤起 Windows 虚拟机里对应的 Office 应用,跟 Windows 系统上的体验基本一致。

快速安装、使用

整个安装分五步,按顺序来就行。

第一步:创建 Windows 虚拟机

推荐用 Docker 或 Podman,配置最简单,项目提供了现成的 compose.yaml,跑起来基本是自动化的。如果你已经有现成的 Windows VM 或 RDP 服务器,也可以直接复用。

第二步:安装依赖

以 Ubuntu/Debian 为例:

sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd

Fedora、Arch、openSUSE、Gentoo 各有对应命令,项目文档里都有,照着来就行。注意 winapps 需要 FreeRDP 3 或更高版本。

第三步:创建配置文件

~/.config/winapps/winapps.conf 里填写 Windows 用户名、密码和 IP 地址,还可以配置分辨率缩放、RDP 端口、自动暂停等选项。配置文件都有详细注释,不难看懂。

第四步:测试 FreeRDP 连接

先手动测一下 RDP 能不能连上,确认连接正常再往下走:

xfreerdp3 /u:"用户名" /p:"密码" /v:127.0.0.1:3389 /cert:tofu

如果 Windows 桌面出来了,说明配置没问题。

第五步:运行安装脚本

保持 Windows 虚拟机开着,执行这一行:

bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)

安装程序会扫描 Windows 里已安装的应用,自动在 Linux 桌面上创建对应的快捷方式,之后就可以直接点图标打开 Windows 应用了。

如果有没被自动识别的应用,也可以手动运行:

winapps manual "C:\path\to\app.exe"

需要特别提醒的是:配置文件里存着 Windows 的账号和密码,一定要设置好权限保护:

chown $(whoami):$(whoami) ~/.config/winapps/winapps.confchmod 600 ~/.config/winapps/winapps.conf

另外,RDP 用户名和密码必须是完整的 Windows 账户,PIN 码登录是不支持 RDP 的。

开源君想说

对于长期使用 Linux 桌面又偶尔离不开 Windows 软件的用户来说,winapps是目前我见过的整合度较高的解决方案之一。不用装双系统,不用赌 Wine 的兼容性,直接用真实的 Windows 应用,体验稳定,社区也一直在维护。

更多细节功能,感兴趣的可以到项目地址查看:

https://github.com/winapps-org/winapps


✍️ 作者:郭智满
本文首发于 郭智满博客www.zhiman.vip
📌 转载无需授权,请保留原文出处。
上一篇 zhiman-blog 轻量级、高性能个人博客系统 下一篇 Elementary OS 6.1 简体中文原版