表面的 “角色” (Surface roles)

我们已经创建了一个像素缓冲区,把它送到了服务端上,并将其连接到一个表面,按理说我们可以通过这个表面向用户显示它。然而,要赋予表面意义还缺少一个关键部分:它的角色。

像素缓冲区可能会向用户表现出许多不同种的情况,而每种情况都需要有不同的语义。例如你的光标图像或是桌面壁纸。为了对比应用程序窗口和光标的语义,我们可以举个例子:你的光标能否被最小化,又或是你的应用窗口是否应该被黏在鼠标上,跟随鼠标移动。出于这个原因,角色提供了另一层抽象,它允许你为表面分配适当的语义。

在接下来的第 6 章中,你可能想给你的程序分配一个应用程序窗口的角色。下一章节介绍了实现这一目的机制:XDG shell