250105.0209

winapps 使用体验 —— 真正的在 Linux 上使用 Microsoft 365 软件


如何在 Linux 上使用 Microsoft 365 软件? 的后续。

在一个下午的努力之后,也算是成功的在 Linux 上跑起来了。


推荐使用的 winapps 装好了。下面是安装和使用它一下午+晚上的综合,包含可能遇到的问题(自己遇到了的问题),和一些不需要担心的问题(很好的地方)。

本来是打算发到频道里的,不过在聊天栏里写完发现好像写的有点太长了,再加上前两天的使用 wine 安装 office 的迷思也发在这边了,所以就最终决定搬到这边来好了。

可能遇到的问题

winapps 的 RDP 无法使用带符号的强密码,会报错无法登录到虚拟机,而 Remmina 就可以登录进去。(调试了好久无法登陆的报错,最后发现换个弱密码就能跑了)

docker-compose.yaml 上面的 oem 脚本有可能会没被安装进去,遇到这个问题就挺麻烦的,要手动用它的 VNC 或者 RDP 进去改好几个注册表值。

虽然教程后面会让这一行注释掉,但是运行 oem 脚本在安装的时候是需要被保留的,因为它设置了一些像是时间同步,能够让 Windows 内的输入法在 RDP 中正常工作等很多的注册表项,而且后续 winapps 的安装也是有要求这些 oem 项要设置。这也是为什么在官方教程中,首次启动 Windows 容器的流程是在注释掉 oem 行之前的。

和上面类似的,安装好之后 docker-compose.yaml 里面的配置字段(用户名/密码什么的)重建容器(down+up)也不会生效,要手动进去改。

默认给的 compose.yaml 是没有用户名和密码的,但是要想让 winapps 正常工作,用户名和密码都是必要的。以及前面也说过,带有符号字符的强密码在 winapps 下无法工作,所以还是推荐第一次安装的时候就设置好用户名和…足够强的弱密码…?然后在 8006 的 VNC 上面检查一下这些有没有被正确设置。

docker-compose.yaml 上的挂载自定义目录的功能不知道为什么自己这边不工作。

known issues,docker 安装方式不支援自动按需冻结虚拟机功能。考虑到这个功能可以极大的省下系统资源消耗,同时大部分机器上应该都是 docker 而不是 podman,libvirt 安装的配置又会更复杂(底层),这个的欠缺非常遗憾。

没有 win11 圆角(因为这个特性需要显卡硬件加速)

Linux 的输入法不工作(不论 IgnoreRemoteKeyboardLayout 是开或者关),只能在 Windows 里面重新配置输入法然后在 Windows 窗口里使用 Windows 的输入法。

在独立窗口模式下,可以使用 Windows 内的输入法,但是会出现输入法的浮窗不会正常消失的问题,输入法浮窗会持续的显示在屏幕上,除非把整个 winapps daemon 杀掉,不然它会一直存在在屏幕上,就算把所有窗口关掉也会。

独立窗口下的 app 有时候会有一些窗口闪烁问题,有极少数时候(不清楚具体怎么触发到的)似乎还会变得非常不稳定,极易卡死甚至闪退。

拖拽/调整窗口大小手感糟糕,有时还可能需要关掉 app 重新打开才能让窗口大小可控。

没有触控支援,触控屏触控到 Windows 部分只会被重新定义为鼠标操作而不是触控操作。(没有测试数位板暂时不清楚有没有 Windows Ink 笔支援)

内部没有浏览器,没有在内部点击的链接会在外部打开之类的特性,需要手动在内部“复制链接”然后外部粘贴访问。

一些不需要担心的事情

Linux 上如果用了 TUN 代理的话,其和容器化 Windows 工作良好,无需额外配置即可代理上网。

运行,包括开关机也都很快,目前没有遇到任何卡顿(8GB RAM,4 cores)

有 HiDPI 支持,虽然官方文档说只有 140%, 180% 两个奇怪的比例,在自己的 200% 屏幕上看起来有点小,不过能用,清晰度也没任何问题。暂时没试有没有文档没说的比例。

Windows 内的输入法在 RDP 模式下工作良好(前提是打开 IgnoreRemoteKeyboardLayout,这个在上文提过的 oem 注册表里)。

剪贴板同步完全没有问题,包括纯文本,富文本,无头图片,文件等等。

RDP 窗口下基本上可以完全当 Windows 用。

可能算 Windows 服务器吧,跑 Windows Native Apps 是不成问题,不过没有显卡没法打电动,都忘了还有这个需求了。以及没测试不知道能不能用来剪视频什么的,只知道 AE 也算在 winapps 的官方支持表里。

后日谈

为什么说是“推荐使用的 winapps”呢,因为自己还在上一篇文章的泥潭里的时候,就有看到一个讲了 winapps / crossover / playonlinux 三个方案的随机 GitHub Gist 好文(这篇文章个人觉得分析的还不错),在这篇文章里面,就着重把 winapps 放在了第一位——最终,这也是在自己机器上唯一跑起来了的方案。

明天去上一篇文章那边再更新一下,补充一点新看到的东西,在此之前,今天就先睡了。



發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *