列出和控制工作区

工作区(也称为虚拟桌面)是表面的分组。具有工作区概念的合成器可能一次只显示部分此类表面组(即"活动"工作区的表面)。"激活"工作区是请求合成器正常显示该工作区的表面,而合成器可能隐藏或以其他方式弱化仅与"非活动"工作区关联的表面。工作区按其对应的输出集分组,可能仅包含来自这些输出的表面。这样,每个输出可以有自己的工作区集,或者所有输出(或任何其他任意分组)共享工作区。合成器可以选择在概念上将每组工作区排列在 N 维网格中。

此协议的目的是通过向任务栏和 Dock 提供工作区列表及其属性,并允许它们激活和停用工作区,从而实现任务栏和 Dock 的创建。

客户端绑定 zcosmic_workspace_manager_v1 后,每个工作区将通过 workspace 事件发送。

commit()
所有关于工作区的请求已发送完毕

客户端在发送完其他请求后必须发送此请求。合成器必须原子地处理 commit 请求之前的一系列请求。

这允许工作区属性的更改被视为原子的,即使它们通过多个事件发生,即使它们涉及多个 zcosmic_workspace_handle_v1 对象,例如停用一个工作区并激活另一个。

stop()
停止发送事件

表示客户端不再希望接收新工作区组的事件。但合成器可能会发出更多工作区事件,直到发出 finished 事件。

客户端在此请求之后不得发送任何更多请求。

工作区组已创建

每当创建新的工作区组时,都会发出此事件。

工作区组的所有初始详细信息(工作区、输出)将通过 zcosmic_workspace_group_handle_v1 中的相应事件在此事件之后立即发送。

done()
所有关于工作区组的信息已发送完毕

在所有工作区组中的所有更改发送完毕后发送此事件。

这允许将一个或多个 zcosmic_workspace_group_handle_v1 属性和 zcosmic_workspace_handle_v1 属性的更改视为原子的,即使它们通过多个事件发生。特别是,当输出从一个工作区组移动到另一个时,会向两个相关的 zcosmic_workspace_group_handle_v1 对象发送 output_enter 和 output_leave 事件。合成器仅在更新两个工作区组中的输出信息后才发送 done 事件。

finished()
合成器已完成 workspace_manager 的处理

此事件表示合成器已完成向 zcosmic_workspace_manager_v1 发送事件。服务器将在发送此请求后立即销毁该对象,因此它将变为无效,客户端应释放与其关联的任何资源。


分配给一组输出的工作区组

zcosmic_workspace_group_handle_v1 对象表示分配了一组输出并包含多个工作区的工作区组。

分配给工作区组的输出集通过 output_enter 和 output_leave 事件传递给客户端,其工作区通过 workspace 事件传递。

例如,每个输出有一组工作区的合成器可以为每个输出公布一个工作区组(及其工作区),而工作区跨越所有输出的合成器可以为所有输出公布单个工作区组。

create_workspace(workspace: string)
参数
类型
描述
workspacestring
创建新工作区

请求合成器创建具有给定名称的新工作区。

不保证合成器会创建新工作区,也不保证创建的工作区会有提供的名称。

destroy()
销毁 zcosmic_workspace_group_handle_v1 对象

销毁 zcosmic_workspace_group_handle_v1 对象。

当客户端不再想使用工作区对象或在 remove 事件之后最终确定对象销毁时,应调用此请求。

capabilities(capabilities: array)
参数
类型
描述
capabilitiesarray
array of 32-bit capabilities
合成器能力

此事件公布合成器支持的功能。如果某个功能不受支持,客户端应隐藏或禁用暴露此功能的 UI 元素。例如,如果合成器不公布创建工作区的支持,则不应显示触发 create_workspace 请求的按钮。

合成器将忽略它不支持的请求。例如,不公布创建工作区支持的合成器将忽略 create_workspace 请求。

合成器必须在创建 zcosmic_workspace_group_handle_v1 后发送此事件一次。当功能发生变化时,合成器必须再次发送此事件。

功能以本机字节序的 32 位无符号整数数组形式发送。

output_enter(output: object<wl_output>)
参数
类型
描述
outputobject<wl_output>
输出已分配给工作区组

每当输出被分配到工作区组时,都会发出此事件。

output_leave(output: object<wl_output>)
参数
类型
描述
outputobject<wl_output>
输出已从工作区组中移除

每当输出从工作区组中移除时,都会发出此事件。

参数
类型
描述
workspacenew_id<zcosmic_workspace_handle_v1>
工作区已添加到工作区组

每当创建新工作区时,都会发出此事件。工作区只能是单个工作区组的成员,不能被重新分配。

工作区的所有初始详细信息(名称、坐标、状态)将通过 zcosmic_workspace_handle_v1 中的相应事件在此事件之后立即发送。

remove()
此工作区组已被销毁

此事件意味着 zcosmic_workspace_group_handle_v1 已被销毁。保证不会再有此 zcosmic_workspace_group_handle_v1 的任何事件。zext_workspace_group_handle_v1 变为惰性,因此除 destroy 请求外,任何请求都将被忽略。

合成器必须在移除工作区组之前移除属于该工作区组的所有工作区。

zcosmic_workspace_group_capabilities_v1 { create_workspace } 
参数
描述
create_workspace1
create_workspace 请求可用

处理一组表面的工作区

zcosmic_workspace_handle_v1 对象表示处理一组表面的工作区。

每个工作区都有一个名称(通过 name 事件传递给客户端)、一个状态列表(通过 state 事件传递给客户端),以及可选的一组坐标(通过 coordinates 事件传递给客户端)。客户端可以请求合成器激活或停用工作区。

每个工作区只能属于单个工作区组。根据合成器策略,不同工作区组中可能有同名的工作区,但这些工作区仍然是独立的(例如其中一个可能是活动的,而另一个不是)。

destroy()
销毁 zcosmic_workspace_handle_v1 对象

销毁 zcosmic_workspace_handle_v1 对象。

当客户端不再想使用工作区对象或在 remove 事件之后最终确定对象销毁时,应调用此请求。

activate()
激活工作区

请求激活此工作区。

不保证工作区会被实际激活,行为可能取决于合成器。例如,激活工作区可能会也可能不会停用同一组中的所有其他工作区。

deactivate()
停用工作区

请求停用此工作区。

不保证工作区会被实际停用。

remove()
移除工作区

请求移除此工作区。

不保证工作区会被实际移除。

rename(name: string)
参数
类型
描述
namestring
new name of the workspace
重命名此工作区

请求重命名此工作区。

不保证工作区会被实际重命名。

参数
类型
描述
stateuint<zcosmic_workspace_handle_v1.tiling_state>
the new tiling state of the workspace
更改此工作区的平铺状态

请求更改此工作区的平铺状态。

不保证工作区会实际更改其平铺状态。

name(name: string)
参数
类型
描述
namestring
工作区名称已更改

在 zcosmic_workspace_handle_v1 创建后立即发出此事件,并在工作区名称每次更改时发出。

coordinates(coordinates: array)
参数
类型
描述
coordinatesarray
工作区坐标已更改

此事件用于将工作区组织到工作区组内的 N 维网格中,如果支持,在 zcosmic_workspace_handle_v1 创建后立即发出,并在工作区坐标每次更改时发出。如果合成器不以这种方式在概念上排列工作区,则可能不发送此事件。如果合成器只是简单编号工作区而没有任何几何解释,它们可以发送 1D 坐标,客户端不应将其解释为暗示任何几何形状。发送空数组表示合成器不再以几何方式排序工作区。

坐标有任意 N 个维度,每个维度有一个 uint32 位置。按照惯例,如果 N > 1,第一个维度是 X,第二个是 Y,第三个是 Z,依此类推。但合成器可以选择利用这些事件来实现更新颖的工作区布局约定。不保证网格被填充或有界;坐标 1 可能有一个工作区,坐标 1000 有另一个,中间没有。但在工作区组内,工作区必须具有相同维度的唯一坐标。

state(state: array)
参数
类型
描述
statearray
工作区状态已更改

在 zcosmic_workspace_handle_v1 创建后立即发出此事件,并在工作区状态每次更改时发出,无论是由于合成器操作还是此协议中的请求。

capabilities(capabilities: array)
参数
类型
描述
capabilitiesarray
array of 32-bit capabilities
合成器能力

此事件公布合成器支持的功能。如果某个功能不受支持,客户端应隐藏或禁用暴露此功能的 UI 元素。例如,如果合成器不公布移除工作区的支持,则不应显示触发 remove 请求的按钮。

合成器将忽略它不支持的请求。例如,不公布移除支持的合成器将忽略 remove 请求。

合成器必须在创建 zcosmic_workspace_handle_v1 后发送此事件一次。当功能发生变化时,合成器必须再次发送此事件。

功能以本机字节序的 32 位无符号整数数组形式发送。

remove()
此工作区已被销毁

此事件意味着 zcosmic_workspace_handle_v1 已被销毁。保证不会再有此 zcosmic_workspace_handle_v1 的任何事件。zext_workspace_handle_v1 变为惰性,因此除 destroy 请求外,任何请求都将被忽略。

指示此工作区是否启用平铺行为

在 zcosmic_workspace_handle_v1 创建后立即发出此事件,并在工作区平铺状态每次更改时发出,无论是由于合成器操作还是此协议中的请求。

state { active, urgent, hidden } 
参数
描述
active0
工作区处于活动状态
urgent1
工作区请求关注
hidden2
工作区不可见

工作区在其工作区组中不可见,尝试可视化合成器工作区状态的客户端不应显示此类工作区。

工作区的状态类型

工作区可以具有的不同状态。

zcosmic_workspace_capabilities_v1 { activate, deactivate, remove, rename, set_tiling_state } 
参数
描述
activate1
activate 请求可用
deactivate2
deactivate 请求可用
remove3
remove 请求可用
rename起始版本 24
rename 请求可用
set_tiling_state起始版本 25
set_tiling_state 请求可用
tiling_state { floating_only, tiling_enabled } 
参数
描述
floating_only0
工作区没有活动的平铺属性
tiling_enabled1
工作区已启用平铺行为
工作区可能具有的平铺状态类型

合成器支持

Cage
Cage
0.2.0
COSMIC
COSMIC
1.0.0~beta.8
GameScope
GameScope
3.15.14
Hyprland
Hyprland
0.52.1
Jay
1.12.0
KWin
KWin
6.6
Labwc
Labwc
0.9.2
Louvre
Louvre
2.14.1
Mir
Mir
2.26
Muffin
Muffin
6.6.0
Mutter
Mutter
49.2
niri
niri
25.11
phoc
phoc
0.52
river
river
0.3.13
Sway
Sway
1.11
Treeland
Treeland
0.8.0
Wayfire
Wayfire
0.9.0
Weston
Weston
14.0.2
zcosmic_workspace_manager_v1
x
x
x
x
x
x
1
x
x
x
x
x
x
x
x
x
x
x

Copyright © 2019 Christopher Billington Copyright © 2020 Ilia Bozhinov Copyright © 2022 Victoria Brekenfeld

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of the copyright holders not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. The copyright holders make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Footer

© 2026 Wayland Explorer

本网站与 Wayland 官方项目无任何关联。网站所有内容均根据 Wayland 协议 XML 文件自动生成。

本网站使用的 Visual Studio Code - Codicons 遵循 CC BY 4.0 许可。