应用程序窗口管理

此接口用于管理应用程序窗口。 它提供了显示和隐藏桌面的请求,并在每次窗口创建时发出事件,以便客户端可以使用它来管理窗口。

一次只有一个客户端可以绑定此接口。

警告!此文件中描述的协议是桌面环境的实现细节。普通客户端不得使用此协议。可能会添加不向后兼容的更改,而无需递增扩展的主版本号。

show_desktop(state: uint)
参数
类型
描述
stateuint
requested state
显示/隐藏桌面

通知合成器显示/隐藏桌面。

get_window(id: new_id<org_kde_plasma_window>, internal_window_id: uint)
参数
类型
描述
idnew_id<org_kde_plasma_window>
internal_window_iduint
The internal window id of the window to create
已弃用

已弃用:请使用 get_window_by_uuid

get_window_by_uuid(id: new_id<org_kde_plasma_window>, internal_window_uuid: string)
参数
类型
描述
idnew_id<org_kde_plasma_window>
internal_window_uuidstring
The internal window uuiid of the window to create
show_desktop_changed(state: uint)
参数
类型
描述
stateuint
new state
通知客户端显示桌面模式的进入/离开

当显示桌面模式发生变化时会发送此事件。例如进入或离开该模式时。

绑定接口时会发送当前状态。

window(id: uint)
参数
类型
描述
iduint
Deprecated: internal window Id
通知客户端窗口已被映射

此事件会在窗口映射后立即发送。

stacking_order_changed(ids: array)
参数
类型
描述
idsarray
internal windows id array
通知客户端堆叠顺序已变化

当堆叠顺序发生变化时以及绑定时会发送此事件。

从版本 17 起此事件已弃用,将不再发送。

stacking_order_uuid_changed(uuids: string)
参数
类型
描述
uuidsstring
internal windows id ;-separated
通知客户端堆叠顺序已变化

当堆叠顺序发生变化时以及绑定时会发送此事件。

从版本 17 起此事件已弃用,将不再发送。

window_with_uuid(id: uint, uuid: string)
参数
类型
描述
iduint
Deprecated: internal window Id
uuidstring
internal window uuid
通知客户端窗口已被映射

此事件会在窗口映射后立即发送。

stacking_order_changed_2()
通知客户端堆叠顺序已变化

当堆叠顺序发生变化时会发送此事件。

参数
描述
active0x1
minimized0x2
maximized0x4
fullscreen0x8
keep_above0x10
keep_below0x20
on_all_desktops0x40
demands_attention0x80
closeable0x100
minimizable0x200
maximizable0x400
fullscreenable0x800
skiptaskbar起始版本 20x1000
shadeable起始版本 30x2000
shaded起始版本 30x4000
movable起始版本 30x8000
resizable起始版本 30x10000
virtual_desktop_changeable起始版本 30x20000
skipswitcher起始版本 90x40000
no_border起始版本 190x80000
can_set_no_border起始版本 190x100000
exclude_from_capture起始版本 200x200000

用于控制应用程序窗口的接口

管理和控制应用程序窗口。

一次只有一个客户端可以绑定此接口。

set_state(flags: uint, state: uint)
参数
类型
描述
flagsuint
bitfield of set state flags
stateuint
bitfield of state flags
设置窗口状态

设置窗口状态。

state 参数的值由 org_kde_plasma_window_management.state 描述,可以在位域中组合使用。flags 位域描述哪些标志需要被设置,state 位域描述已设置标志的值。

set_virtual_desktop(number: uint)
参数
类型
描述
numberuint
zero based virtual desktop number
将窗口映射到虚拟桌面

已弃用:请使用 enter_virtual_desktop 将窗口映射到不同的虚拟桌面。

要使窗口在所有虚拟桌面上显示,请调用 org_kde_plasma_window.set_state 请求并在位域中指定 on_all_desktops 状态。

set_minimized_geometry(panel: object<wl_surface>, x: uint, y: uint, width: uint, height: uint)
参数
类型
描述
panelobject<wl_surface>
xuint
yuint
widthuint
heightuint
设置任务栏条目的几何形状

设置此窗口的任务栏条目的几何形状。该几何形状是相对于特定面板的。

unset_minimized_geometry(panel: object<wl_surface>)
参数
类型
描述
panelobject<wl_surface>
设置任务栏条目的几何形状

移除特定面板的任务几何信息。

close()
关闭窗口

关闭此窗口。

request_move()
请求移动

请求对此窗口进行交互式移动。

request_resize()
请求调整大小

请求对此窗口进行交互式调整大小。

destroy
类型: destructor起始版本 4
destroy()
移除 org_kde_plasma_window 的资源

移除绑定到此 org_kde_plasma_window 的资源。

get_icon(fd: fd)
参数
类型
描述
fdfd
file descriptor for the icon
请求获取窗口图标

合成器会将窗口图标写入提供的文件描述符中。数据是通过 QDataStream 序列化的 QIcon。

request_enter_virtual_desktop(id: string)
参数
类型
描述
idstring
desktop id
将窗口映射到虚拟桌面

使窗口进入一个虚拟桌面。窗口可以进入多个虚拟桌面。如果 id 为空或无效,则不执行任何操作。

request_enter_new_virtual_desktop()
将窗口映射到虚拟桌面

RFC:是否可以通过空 id 调用 request_enter_virtual_desktop 来实现? 使窗口进入一个新的虚拟桌面。如果服务器同意请求,它将创建一个新的虚拟桌面并将窗口分配给它。

request_leave_virtual_desktop(id: string)
参数
类型
描述
idstring
desktop id
从虚拟桌面移除窗口

使窗口退出一个虚拟桌面。如果窗口退出所有桌面,则视为在所有桌面上。

request_enter_activity(id: string)
参数
类型
描述
idstring
activity id
将窗口映射到活动

使窗口进入一个活动。窗口可以进入多个活动。如果 id 为空或无效,则不执行任何操作。

request_leave_activity(id: string)
参数
类型
描述
idstring
activity id
从活动移除窗口

使窗口退出一个活动。如果窗口退出所有活动,则视为在所有活动上。

send_to_output(output: object<wl_output>)
参数
类型
描述
outputobject<wl_output>
将窗口发送到指定输出

请求将此窗口显示在指定的输出上。

title_changed(title: string)
参数
类型
描述
titlestring
window title
窗口标题已变化

窗口标题发生变化时会立即发送此事件。

app_id_changed(app_id: string)
参数
类型
描述
app_idstring
应用程序标识符已变化

应用程序标识符发生变化时会立即发送此事件。

state_changed(flags: uint)
参数
类型
描述
flagsuint
bitfield of state flags
窗口状态已变化

窗口状态发生变化时会立即发送此事件。

state 参数的值由 org_kde_plasma_window_management.state 描述。

virtual_desktop_changed(number: int)
参数
类型
描述
numberint
zero based virtual desktop number
窗口已被移动到另一个工作区

已弃用:请改用 virtual_desktop_entered 和 virtual_desktop_left 当窗口被移动到另一个虚拟桌面时会发送此事件。

如果窗口在所有虚拟桌面上变为可见,则不会发送此事件。

themed_icon_name_changed(name: string)
参数
类型
描述
namestring
the new themed icon name
窗口的图标名称已变化

当主题图标名称发生变化时会发送此事件。可能为 null。

unmapped()
窗口的 surface 已被取消映射

此事件会在窗口关闭且其 surface 被取消映射后立即发送。

initial_state()
所有初始已知状态已提交

所有初始状态发送给客户端后会立即发送此事件。如果 Plasma 窗口已经被取消映射,unmapped 事件将在 initial_state 事件之前发送。

parent_window(parent: object<org_kde_plasma_window>)
参数
类型
描述
parentobject<org_kde_plasma_window>允许为空
The parent window
父窗口已变化

当此 org_kde_plasma_window 的父窗口发生变化时会发送此事件。传入的父窗口是另一个 org_kde_plasma_window,此 org_kde_plasma_window 是父窗口的临时窗口。如果 parent 参数为 null,则此 org_kde_plasma_window 没有父窗口。

geometry(x: int, y: int, width: uint, height: uint)
参数
类型
描述
xint
x position of the org_kde_plasma_window
yint
y position of the org_kde_plasma_window
widthuint
width of the org_kde_plasma_window
heightuint
height of the org_kde_plasma_window
此窗口在绝对坐标中的几何形状

当此 org_kde_plasma_window 的窗口几何形状发生变化时会发送此事件。坐标使用窗口系统的绝对坐标。

icon_changed()
窗口的图标已变化

当窗口图标发生变化但没有主题图标名称时会发送此事件。常见例子是具有基于像素图图标的 Xwayland 窗口。

客户端可以使用 get_icon 请求图标。

pid_changed(pid: uint)
参数
类型
描述
piduint
process id
拥有窗口的应用程序的进程 ID 已变化

当合成器设置了此窗口所属的进程 ID 时会发送此事件。应在 initial_state 发送之前设置一次。

virtual_desktop_entered(id: string)
参数
类型
描述
idstring
desktop id
窗口已进入新的虚拟桌面

当窗口进入新的虚拟桌面时会发送此事件。窗口可以在多个桌面上,也可以不在任何桌面上:此时视为在所有桌面上。

virtual_desktop_left(is: string)
参数
类型
描述
isstring
desktop id
窗口已离开一个虚拟桌面

当窗口离开一个虚拟桌面时会发送此事件。如果窗口离开所有桌面,可视为在所有桌面上。如果窗口被手动添加到所有桌面,服务器必须为窗口之前所在的每个桌面发送 virtual_desktop_left,才能真正视为在所有桌面上。

application_menu(service_name: string, object_path: string)
参数
类型
描述
service_namestring
object_pathstring
通知客户端当前应用程序菜单已变化

当窗口的应用程序菜单发生变化后会发送此事件。

activity_entered(id: string)
参数
类型
描述
idstring
activity id
窗口已进入一个活动

当窗口进入一个活动时会发送此事件。窗口可以在多个活动上,也可以不在任何活动上:此时视为在所有活动上。

activity_left(id: string)
参数
类型
描述
idstring
activity id
窗口已离开一个活动

当窗口离开一个活动时会发送此事件。如果窗口离开所有活动,将视为在所有活动上。如果窗口被手动添加到所有活动,服务器必须为窗口之前所在的每个活动发送 activity_left,才能真正视为在所有活动上。

resource_name_changed(resource_name: string)
参数
类型
描述
resource_namestring
resource name
X11 资源名称已变化

当窗口的 X11 资源名称发生变化时会发送此事件。仅对 XWayland 窗口设置。

client_geometry(x: int, y: int, width: uint, height: uint)
参数
类型
描述
xint
x position of the org_kde_plasma_window
yint
y position of the org_kde_plasma_window
widthuint
width of the org_kde_plasma_window
heightuint
height of the org_kde_plasma_window
此窗口在绝对坐标中的客户端几何形状(不含装饰等)

当此 org_kde_plasma_window 的窗口几何形状发生变化时会发送此事件。坐标使用窗口系统的绝对坐标。


激活反馈

激活管理器接口提供了一种在应用程序即将被激活时获取通知的方式。

destroy()
销毁激活管理器对象

销毁激活管理器对象。由此管理器对象引入的激活对象不受影响。

activation(id: new_id<org_kde_plasma_activation>)
参数
类型
描述
idnew_id<org_kde_plasma_activation>
通知应用程序正在启动

当应用程序被设置为激活时会发出此事件。它提供了一个 org_kde_plasma_activation 实例,该实例将告诉我们 app_id 和激活的程度。



destroy()
销毁 org_kde_plasma_activation 对象

通知合成器 org_kde_plasma_activation 对象将不再使用。

app_id(app_id: string)
参数
类型
描述
app_idstring
application id, as described in xdg_activation_v1
提供 app_id
finished()
通知激活已完成,无论是通过激活还是因为被无效化

用于发送堆叠顺序的辅助对象

当此对象被创建时,合成器会按堆叠顺序为每个窗口发送一个 window 事件,然后发送 done 事件并销毁此对象。

window(uuid: string)
参数
类型
描述
uuidstring
window uuid
堆叠顺序列表中的一个窗口
done()
标记列表结束

合成器支持

未发现合成器支持

SPDX-FileCopyrightText: 2013-2014 Pier Luigi Fiorini

SPDX-License-Identifier: LGPL-2.1-or-later

Footer

© 2026 Wayland Explorer

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

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