这是让 Linux 用户已等了很久的项目。
现在它在 GitHub 上面已经积攒了 15000 多个 Star。

有不少人都把 Linux 当作主力框架来用,倒不是因为没法用 Windows,而是单纯不想再切回去。
可偏偏总有那么几个软件绕但去。举例 Office,Adobe 系列,以及某些只支持 Windows 的专业工具。
于是难题也就跟着来了。
为了用上它们,你要么保留双系统,要么就得长期挂着一个虚拟机。
这么折腾了好多年之后,后来 WinApps 给出了一种更加体面的解决方式。
它不是借助 Wine 去兼容 Windows 程序,而是直接跑起一个真实的 Windows 情境,并且把使用窗口给整合进 Linux 桌面当中。
看上去就好像这些程序原本就跑在 Linux 上面一样。
它跑起来的乃是一份真实的 Windows 环境。
故而兼容起来比 Wine 要让人放心得多。从理论上讲,随便哪个 Windows 使用都能跑。
社区方面已经测试了 30 款主流应用,遇到的问题都不算大。

能跑只是基本功,真正好用的是这些细节。
应用自动发现和集成。
WinApps 会自动去扫描一遍 Windows 里面。早就装好的那些应用,随后把它们的图标给塞进 Linux 的施用菜单里去。
还能够配置好 MIME 类型的关联,这样一来文件管理器就能辨认出哪些文件该丢给 Windows 应用去打开。
比方说你手头有一个 .docx 文件,只要在 Nautilus 里右键点一下,就可以直接用 Microsoft Word 来打开它。

文件系统双向访问。
你在 Windows 里面直接就能访问到 Linux 的 /home 目录,对应的路径是 \tsclient\home。
文件互相拖来拖去,剪贴板互通这些方面都没什么难题,打印机在两个框架里头也照样能共用。

WinApps Launcher 系统托盘工具。
架构托盘那儿有一个菜单,可以让你用来启动施用,管理 Windows 虚拟机或者容器。
省得每次都得专门开终端去敲命令。有个界面确实要直观得多。


AUTOPAUSE 自动暂停功能。
只要 Windows 那边一闲着。它就会自动暂停运行,替你节省系统资源。
不用总是惦记着 Windows 虚拟机在后台偷偷地吃掉内存了。
多显示器支持。
多显示器这种情境也同样支持。
HiDPI 缩放方面,像 100,140,180 这些放大倍率都足以进行配置。

功能看完了,想上车的话我给你捋一遍流程。
说真的,不管你所选择的是哪种方式,前面那几步操作都是相同的。
先装依赖。
你的系统上需要有这么几个东西:FreeRDP,也就是用来远程连接 Windows 的组件,还有 curl,dialog 以及 git。
对于 Ubuntu/Debian 用户,可以执行:
sudo apt install freerdp2-x11 curl dialog git
如果是 Fedora/CentOS,那么把 apt 换成 dnf 就好,包的名字基本一样。
再克隆项目。
git clone https://github.com/winapps-org/winapps.gitcd winapps
好了,前置的这些准备工作做完之后,接下来就是去选定一条具体的路线了。
WinApps 支持三种用来跑 Windows 的方式,你根据自己的实际情况挑上一个就行。

路线一:Docker 容器(最省心,推荐新手)这算是最省事的方案了,脚本会全自动地帮你把一切搞定。
执行安装脚本:
./setup.sh
它会向你提一连串的问题,照着填进去就行—像是选用 Docker 作为后端,Windows 镜像放在哪里,还有用户名和密码这些。
后面你就等着就好。脚本会自动去拉取 Windows 镜像,把网络配置好,并且把 VirtIO 驱动给装上。
从头到尾你连 Windows 安装界面都用不着碰,对于不想折腾的人来讲,实在是过于友好了。
前提是你的机器上早就装好了 Docker,要是还没有的话,可以先借助 sudo apt install docker.io 这个命令把它装上。
路线二:Podman 容器(跟 Docker 差不多,但更安全)
操作流程跟 Docker 这个方案几乎是一模一样,同样去执行 ./setup.sh,接着选择 Podman 就可以。
它跟 Docker 的区别在于:Podman 并没有 daemon 进程常驻在后台,每一个容器都是直接跑在你自己的用户权限之下的,在安全要求比较高的场合会更加适宜。
同样也是全自动化的部署,用不着手动去碰 Windows。
路线三:Libvirt/KVM 虚拟化(麻烦,但性能最好)
这条路线比较适宜那些有 3D 应用需求,并且对性能比较敏感的人。
KVM 是直接凭借硬件虚拟化来跑的,比起容器方案要流畅很多,尤其在跑图形密集型应用时,这种差距会非常明显。
但相应的代价就是。你需要自己动手去干很多事情—手动创建 Windows 虚拟机,自己去装架构,自己去配置 VirtIO 驱动。
具体的步骤可以参考 WinApps 仓库里面的 libvirt 文档。这份文档写得挺详细的,照着做就行。
比较适合本身就具备一定 Linux 虚拟化经验的人群。
小白用户建议还是从前面那两条路线开始上手。
到这里几个注意点也给大家提提。
01 眼下只支持 X11,Wayland 的单运用模式到现在还没能搞定。
倘若你正在使用的就是 Wayland 桌面,那可能就得先切回到 X11,要么就等待后续的更新。
02 假如没有配置 GPU 直通,那么跑起 3D 采用和游戏就会显得有些吃力了。
Windows 的桌面窗口管理器会退回到使用软件渲染,帧率跟着就会往下掉。
写在最后
说到底,WinApps 所解决的,其实是一个相当具体的难题。
并不是所有的人都用得上它。
假如你本来就,是一个 Windows 用户,那这东西对你来讲差不多就是毫无意义。
倘若你是纯粹的 Linux 用户,而且所有的需求都能被开源软件所满足,那也压根用不着它。
但它存在的真正价值取决,有那样一群人,他们已深度绑定在 Linux 体系里头了:服务器跑的是 Linux,开发工具链也是 Linux,就连日常的使用习惯也全是 Linux。
可现实偏偏就是,总会有那么一些时候,你不得不去打开一个 .docx 文件,不得不用上某个只有 Windows 本子才有的内部工具,又或者不得不帮客户去处理一份 Visio 流程图。
这群人恰好就是 WinApps 所面向的目标用户。
人数并不算多,但确实真实存在着。
各位觉得呢?
这个项目基于开源协议完全开放,感兴趣的同学不妨去 GitHub 仓库看一看它的源码和文档。
开源地址:https://github.com/winapps-org/winapps
既然都已经看到这里了,欢迎随手点个赞,在看,转发,也可以顺手点个星标⭐,接收最新的文章,下期再见!