Phosh 0.56.0 发布了,版本号看着像个小版本迭代,changelog 也是一堆插件更新和 bug fix 的老套路。但这次更新里藏着两个 Linux 手机圈子里憋了很久的真问题:预装应用没法藏,系统更新没法原子化。这两件事解决的不是体验加分项,是把不可变发行版从"能用"往"好用"上又推了一步。
Phosh 是跑在 Wayland 合成器 Phoc 之上的手机 Shell,postmarketOS、Mobian、Librem 5 的 PureOS 都靠它撑起界面。这次连带发布的还有 phoc、输入法 stevia、以及配套的 phosh-mobile-settings,四个组件版本号统一对齐到 0.56.0。
隐藏应用这件小事,为什么拖到现在才做
不可变系统镜像(如 postmarketOS 的 Duranium 变体、Phosh 团队自己的 BengalOS)这两年成了移动 Linux 的主流方向,因为基础镜像固定、安全更新一致,维护起来轻松很多。但代价是镜像里预装的应用用户没法直接卸载——它们是系统的一部分。
过去用户想把这些用不上的应用从 app-grid 里藏起来,只能手动复制 .desktop 文件到本地目录,再加一行 NoDisplay=true 的 hack。这种做法脆弱,镜像一更新就可能被重置,等于每次升级都要再做一遍。
0.56.0 把这件事收进了官方能力:app-grid 支持在不使用 GNOME Software 的场景下直接隐藏基础镜像里的应用,phosh-mobile-settings 的 overview 面板也同步加了"重新显示隐藏应用"的入口。这不是新功能炫技,是把一个社区流传的临时补丁,变成了不会被镜像升级吃掉的正式设置。
- 结论.隐藏应用官方化,等于把一个"每次升级都要重做"的 hack 变成了持久设置。
原子更新配上 systemd-sysupdate,覆盖面还不广
另一个真正有分量的改动在 phosh-mobile-settings 里:新增的 os-updates 面板,支持基于 systemd-sysupdate 的原子式系统更新,专门为不可变镜像设计。传统包管理器的增量更新在不可变系统上天然别扭——文件系统是只读的,普通的 apt/apk 升级逻辑套不上去。
这个面板目前只在 systemd-sysupdate 服务可用时才会启用,等于是"能力已经具备,但要看具体发行版镜像有没有接上这条链路"。哪家发行版先在正式镜像里把它跑通,哪家就先吃到这次更新的红利。
同时 about 面板加了镜像版本号显示,方便在 BengalOS 这类不可变系统上确认自己是不是跑在最新版——这也是不可变架构下才会出现的新刚需,传统发行版靠包管理器版本号就够了。
底层合成器两年内跳了三个大版本
phoc 这次升级到 wlroots 0.20.1,还加了 xdg-toplevel-tag-v1 协议支持,这个协议让外部工具能更精确地识别和标记窗口,多任务管理、外部 dock 场景会更受用。单看这一条改动不起眼,但放进时间线里看就不一样了:Phosh 2024 年初发布 0.36.0 时,phoc 依赖的还是 wlroots 0.17.1。两年时间,底层合成器跨了好几个大版本。
这说明 Phosh 团队没有停在"能跑"的阶段,而是持续跟进 wlroots 上游的协议演进——这类底层工作平时不会被用户感知到,但决定了 Phosh 能不能撑住后面几年的新硬件和新协议。
版本号越碎,越说明这个项目在往细节里较劲
三条路线里,Phosh 在赌"日常可用"
Linux 手机 Shell 目前基本是三条路线并行:Phosh、KDE 的 Plasma Mobile、GNOME 官方原生方向的 GNOME Shell mobile。Plasma Mobile 强在可定制,GNOME Shell mobile 更偏向面向未来的架构探索,Phosh 目前被普遍认为是三者里被真实用作日常手机系统最多的一个。
这次更新没有堆炫技功能,而是把不可变系统这个新趋势里最琐碎的两处细节焊死了。这类"没人会截图发朋友圈"的改动,往往才是决定谁能成为不可变 Linux 手机默认底座的关键。
- 风险.os-updates 面板依赖 systemd-sysupdate 服务是否可用,普通用户能不能立刻用上,取决于所在发行版镜像有没有适配,目前还看不清覆盖范围。
接下来该盯的是 postmarketOS Duranium 和 BengalOS 这两个不可变镜像,会不会率先把 os-updates 面板跑通、正式启用;隐藏应用的持久化表现,也得等一次真实的镜像升级来验证。
