WinApps:让 Linux 流畅运行 Windows 应用,狂揽 1.5 万 Star
开发者经常要在 Linux 系统上工作,但有时候需要看 Word 文档,或打开 Excel 表格。而这些软件在 Linux 上并不兼容。用虚拟机的话,还经常打不开或者用着用着就崩。再不然就是双系统,改个文档还得重启电脑。
WinApps 把这件事解决了——把单个 Windows 应用,当成 Linux 原生应用单独开一个窗口。
核心思路:不翻译,直接跑真 Windows
之前 Wine 把 Windows API 一点点翻译过来,注定要跟微软的更新赛跑,总归差一截。
WinApps 换思路:不翻译了,直接跑一个真的 Windows,把应用的窗口借过来用。
Word、Excel、Photoshop 等等软件都单独开一个窗口,跟 Linux 应用同在任务栏里。不用打开整个 Windows 桌面,也不用来回切换不同系统。
工作原理
- 在 Docker 或者 libvirt 里运行一台 Windows 虚拟机
- WinApps 扫描虚拟机里装了哪些应用
- 在 Linux 菜单里生成快捷打开方式
- 只把这个应用的窗口投射过来,而不是整个桌面
最终看到的,是一个个独立的应用窗口,像在 Windows 系统打开似的。
细节设计
文件共享
Linux 系统的 /home 目录会直接挂进 Windows,两边共用一份文件。不需要在两个系统之间传来传去。
右键集成
在文件管理器里右键一个文件,能直接用 Windows 应用打开,按文件类型自动关联。
浏览器跳转
即便是从浏览器打开的文档链接,也能自动跳到本地的 Windows 应用里接着编辑。
兼容性
几乎所有 Windows 应用都能用,除了一些要求较高的游戏外。Office 全家桶、Adobe 全家桶以及 Visual Studio 都兼容,装完就能用。
菜单栏小工具
WinApps Launcher 可快速打开应用、开关和暂停这台 Windows。
注意事项
这套方案并非零成本:
- 需要安装一台 Windows 虚拟机,分配部分内存和硬盘存储
- 配置有点复杂——需装 FreeRDP 依赖、写配置文件、跑安装脚本
- 有项目文档可参考,跟着走即可
在 Windows 那边准备好之后,来到 Linux 系统装 WinApps 就是一行命令的事:
bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)
项目背景
WinApps 最早由作者 Fmstrat 开发,现在由开源社区独立维护。经过一年多迭代更新,安装体验和应用兼容性上已有很大提升,这也是最近火起来的原因之一。
写在最后
一直以来,Linux 系统在办公软件方面的不兼容问题,很多年都没有找到好的解法。Wine 翻译 API 的思路总归差一截。
WinApps 换了个思路——代价是一台虚拟机,换来的是兼容性和流畅性的巨大提升。
如果你日常经常需要在 Linux 上工作,同时又得用到 Windows 的软件,那 WinApps 值得装一个。
开源地址:https://github.com/winapps-org/winapps