
上一期,我们聊到了 Treeland 在窗口、手势、多任务等体验上的变化。
但一个真正好用的桌面环境,除了操作起来足够流畅,还有一个绕不开的问题:
我们每天日常使用的应用,能不能正常运行?
对于游戏、3D 应用以及一些基于 X11 的老应用来说,这恰恰是 Wayland 桌面需要持续解决的问题。
它不像窗口动画那么容易被看见,却在实实在在地决定着:那些你每天必用的软件和游戏,能不能在 Treeland 上正常跑起来。
今天我们就来聊聊,Treeland 在应用生态这条线上,最近又往前走了几步。
Treeland 是 deepin 社区开发的一款基于 Wayland 协议的显示服务器,Treeland在底层使用 wlroots 作为 Wayland 的基础库,不修改 wlroots 的代码,也就意味着可以随时同步上游进度,获得新的功能与修复。上层使用 Qt,可以充分利用已有的大量 Qt 开发者,不再需要一直有专人负责特定项目,让 DDE 的技术栈更加统一。
01|从两个“看不见”的协议说起
先想象两个场景。
- 场景一: 你在玩 FPS 游戏,鼠标正瞄准敌人,结果光标突然跑出了游戏窗口,然后你发现自己在窗口外点了一下桌面,游戏被切出去了。
- 场景二: 你在 3D 建模软件里旋转视角,软件需要知道你鼠标“移动了多少”,而不是“现在在哪里”— 因为物体旋转需要的是相对位移,而不是绝对坐标。
这两个场景看起来完全是两件事,但它们的背后,其实需要 Wayland 桌面提供两个关键能力:
- pointer-constraints:让鼠标光标在特定场景下不跑出窗口边界;
- elative-pointer:让应用能获取鼠标的“移动增量”,而非绝对位置。
简单来说 , 前者负责把鼠标“锁”在窗口里,后者负责告诉应用“鼠标动了多少”。
有了这两个协议,FPS 游戏才能正常玩,3D 建模才能正常操作,一些专业设计软件才能正常用。
最近,Treeland 在这两个协议的支持上又往前走了一步。
虽然用户通常不会直接感知到它们的存在,但当鼠标不再意外跑出游戏窗口、当建模软件里的视角操作变得跟手时,用户感受到的,就是这些协议在起作用。

02|Xwayland : 一段必须要补上的路
Wayland 桌面不可能在一夜之间,让所有应用都重新开发一遍,现实是,还有大量基于 X11 的应用,需要继续在 Treeland 上正常使用。
这就是 Xwayland 存在的意义:它是一个兼容层,让那些还没有完成 Wayland 原生适配的应用,依然能够在 Wayland 桌面下正常运行。
换句话说,Xwayland 的稳定性和兼容性越好,你能直接打开、直接使用的应用就越多。
最近,我们继续修复了一批 Xwayland 下的问题,涉及窗口管理、右键菜单、输入焦点等场景。
单个问题看起来都不大,但累积起来,影响的是日常使用的整体感受 — 菜单能不能正常弹出、窗口能不能正确切换、键盘输入会不会突然“跑偏”。
这些细节稳定了,整个桌面才真的“靠谱”。

03|从协议到应用,一条完整的路
回头看这条线:
- pointer-constraints 和 relative-pointer 协议的补齐,解决了 FPS 游戏和专业 3D 应用的核心交互问题;
- Xwayland 的持续修复,让大量现有的 X11 应用能够继续正常工作;
- Wine-Wayland 的改进,则让更多 Windows 办公应用开始在 Treeland 上站稳脚跟。
这三个层次,从底层协议到兼容层,再到真实应用场景,我们每一步都在解决同一个问题:
让你想用的应用,能够在 Treeland 上正常跑起来,这才是应用兼容真正有意义的地方。
流畅的动画和美观的界面,是用户愿意尝试 Treeland 的理由。
而丰富的、好用的、能正常工作的应用,才是用户愿意一直用下去的理由。

Treeland 想做的,不只是“支持更多应用”。
对于用户来说,可能不会关心某个协议具体叫什么,也不会注意某个底层接口什么时候完成,大家真正关心的是:“我想玩的游戏能不能玩?”“我需要的软件能不能用?”“日常使用起来会不会出问题?”
而 Treeland 正在做的,就是一点点缩短技术与用户之间的距离。
从“能运行”到“运行得更好”,再到让用户几乎感觉不到自己正在使用一套新的技术栈。
这也是 Treeland 从“能用”走向“好用”的另一条路。
下一篇,我们继续聊 Treeland 的另一个重要变化:③ 系统更稳了 —— 减少崩溃与异常,让多屏、焦点、Alt+Tab、拖拽等日常操作更加稳定。
欢迎前往 deepin 论坛分享你的体验~

English