Separating the Wayland Compositor and Window Manager
核心内容
River 0.4.0 版本分离 Wayland Compositor 和 Window Manager,降低编写窗口管理器的门槛。
关键亮点
- 传统架构问题:Wayland compositor + window manager 合二为一,编写窗口管理器需要实现整个 compositor
- river-window-management-v1 协议:让 window manager 完全控制窗口位置、keybindings 等
- 无需往返:每帧/每个输入事件无需与 window manager 往返
- 帧完美 (Frame Perfection):用户永远不会看到窗口布局的中间状态
- 降低门槛:编写基础窗口管理器现在可以在一个周末完成
- 作者: Isaac Freund (FOSDEM 2026 演讲)
技术细节
- 状态机设计:区分 window management state 和 rendering state
- 管理序列/渲染序列:batch updates 保证原子性
- 与 X11 对比:Wayland 解决了 X11 的不必要往返和输入路由问题
- 与 wlroots 对比:wlroots 让编写 compositor 更容易,但仍需实现整个 compositor