这是《Treeland 进化进行时》系列的第三篇。前两篇聊了窗口、手势、动画这些看得见的变化,也聊了应用兼容。这一篇换个话题:稳定性。

过去:最怕屏幕突然"闪一下"

对桌面环境来说,动画再漂亮、功能再多,偶尔崩一次,体验就归零了。

过去用 Treeland,最怕的就是这几个场景:切个窗口崩了,电脑闲着不动也崩,连上或拔掉显示器还是崩。崩溃没什么征兆,正在写的东西、排到一半的窗口布局,说没就没。

说白了,以前的稳定性没做到位。所以过去几个月,我们做了一件不太适合截图的工作:把 Treeland 变得更稳。做法很朴素,把日常里最容易出问题的场景一个个找出来,把崩溃一个个堵住。5 到 7 月,我们解决了约 20+ 个稳定性与崩溃相关问题,窗口切换、多显示器、文件拖拽、托盘、焦点、Alt+Tab、菜单都在其中。

01|连接、拔掉显示器,桌面都应该稳稳接住

经常用多显示器的用户,接外接屏、回家拔掉、开会连投影,一天能操作好几次。看起来只是插拔一下,显示器的变化却会牵动窗口位置、工作区、焦点这些状态。

5 月之前,控制中心甚至没有多屏显示设置项。那时候切个窗口、让电脑空闲、插拔显示器,都可能把桌面带崩。

最近几个月,Treeland 一直在处理多显示器拔插这类问题。现在无论是接上新屏幕,还是拔掉已经连接的屏幕,桌面都能把这一连串变化处理干净。

插拔之后桌面安安静静的,其实就是一种进步。

02|Alt+Tab 之后,窗口应该知道你想去哪

Alt+Tab 是很多人每天要按几十次的键。浏览器、终端、文件管理器、编辑器之间来回切,窗口焦点一出问题,烦躁感比想象中更明显:明明切到了另一个窗口,输入却跑回原来的应用;窗口切了,焦点却没跟上。

针对窗口焦点和 Alt+Tab 的问题,Treeland 已经修了一轮。现在按下 Alt+Tab,切到需要的应用,输入跟着走,焦点跟得上,然后继续干活。

切到哪个窗口,打字就在哪个窗口。这个本该理所当然的状态,现在算是回来了。

03|拖动文件、操作托盘,这些细节也更加稳定

从文件管理器拖一个文件到另一个窗口,或者拖到应用、托盘区域,都是再普通不过的操作。但对桌面环境来说,拖拽不只是鼠标移动那么简单:文件要跟着鼠标走,窗口要正确响应,目标区域要明白你想把它放在哪里。过去,文件拖拽、托盘拖拽都出过问题。

最近我们修复了文件拖拽、托盘拖拽,窗口焦点、菜单位置也一起处理了。拖动文件、打开菜单,这些日常操作正在慢慢变得可靠,不用再担心这次会不会出岔子。

04|那些看不见的变化,也很重要

更顺滑的动画、更自然的手势,是你直接能感受到的部分;稳定性方面的优化,则是在给 Treeland 打一层看不见的基础。

桌面环境是个复杂系统。一个窗口异常、一次焦点变化、一次显示器拔插,看起来都是小事,背后往往牵动多个模块的协作。修一个窗口的异常不难,难的是弄明白它为什么发生,让各个环节协作得稳一些,让整个桌面的基础扎实一些。

这些变化不会出现在截图里,也不会是什么显眼的新功能,但它们会一点点改变每天的使用感受。真正好用的桌面,不该只在演示时表现得好,而是经得起天天用。

结尾

Treeland 还在变。有些变化一眼就能看到,比如更顺滑的动画、更自然的手势;有些变化你可能注意不到,比如今天拔掉显示器没崩、按完 Alt+Tab 窗口切对了、拖文件时一切照常。

我们想要的,是一个能放心每天用的桌面。

下一篇聊聊这些变化背后的技术底座。

 

什么是Treeland?

Treeland 是 deepin 社区开发的一款基于 Wayland 协议的显示服务器,Treeland在底层使用 wlroots 作为 Wayland 的基础库,不修改 wlroots 的代码,也就意味着可以随时同步上游进度,获得新的功能与修复。上层使用 Qt,可以充分利用已有的大量 Qt 开发者,不再需要一直有专人负责特定项目,让 DDE 的技术栈更加统一。