开发者经常要在 Linux 系统上工作,但有时候需要看 Word 文档,或打开 Excel 表格。
而这些软件在 Linux 上并不兼容,用虚拟机的话,还经常打不开或者用着用着就崩。
再不然就是双系统,改个文档还得重启电脑,切过去改完再切回来,来回切换实在麻烦。
直到最近在 GitHub 上翻到 WinApps,才把这事解决了,目前已狂揽了 15400+ Star。
它所做的事就是,把单个 Windows 应用,当成 Linux 原生应用单独开一个窗口。
Word、Excel、Photoshop 等等软件都单独开一个窗口,跟 Linux 应用同在任务栏里。
不用打开整个 Windows 桌面,也不用来回切换不同系统。
它到底怎么做到的?下面来跟大家说一说,其实原理很简单。
先在 Docker 或者 libvirt 里运行一台 Windows 虚拟机,性能这块不用太担心。
接着 WinApps 会扫描虚拟机里装了哪些应用,并在 Linux 菜单里生成快捷打开方式。
最后打开应用,只把这一个应用的窗口投射过来,而不是整个桌面,实现流畅使用。
所以我们看到的,也就是一个个独立的 应用窗口,像在 Windows 系统打开似的。
但真正让它像 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 把 Windows API 一点点翻译过来,注定要跟微软的更新赛跑,总归差一截。
现在 WinApps 换思路,不翻译了,直接跑一个真的 Windows,把应用的窗口借过来用。
这样的做法,代价就是得新开一台虚拟机,但换来的是兼容性和流畅性上的大大提升。
如果我们日常经常需要在 Linux 上工作,同时又得用到 Windows 的软件,那 WinApps 值得装一个。
GitHub 项目地址:https://github.com/winapps-org/winapps
今天的分享到此结束,感谢大家抽空阅读,我们下期再见,Respect!