列出并控制已打开的应用

此协议的目的是通过向任务栏和 Dock 提供已打开应用的列表,并允许它们请求对这些应用执行某些操作(如最大化等),从而实现任务栏和 Dock 的创建。

客户端绑定 zwlr_foreign_toplevel_manager_v1 后,每个已打开的 toplevel 窗口都将通过 toplevel 事件发送。

stop()
停止发送事件

表示客户端不再希望接收新 toplevel 的事件。但合成器可能会继续发出 toplevel_created 事件,直到发出 finished 事件。

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

参数
类型
描述
toplevelnew_id<zwlr_foreign_toplevel_handle_v1>
一个 toplevel 已被创建

每当创建新的 toplevel 窗口时,都会发出此事件。它针对所有 toplevel 发出,无论创建它们的应用是什么。

toplevel 的所有初始详情(标题、app_id、状态等)将在此事件之后通过 zwlr_foreign_toplevel_handle_v1 中的相应事件立即发送。

finished()
合成器已完成 toplevel 管理器的事件发送

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


一个已打开的 toplevel

zwlr_foreign_toplevel_handle_v1 对象代表一个已打开的 toplevel 窗口。每个应用可以有多个已打开的 toplevel。

每个 toplevel 都有一个它可见的输出列表,通过 output_enter 和 output_leave 事件传递给客户端。

set_maximized()
请求最大化 toplevel

请求最大化 toplevel。如果最大化状态实际发生变化,将通过 state 事件指示。

unset_maximized()
请求取消最大化 toplevel

请求取消最大化 toplevel。如果最大化状态实际发生变化,将通过 state 事件指示。

set_minimized()
请求最小化 toplevel

请求最小化 toplevel。如果最小化状态实际发生变化,将通过 state 事件指示。

unset_minimized()
请求取消最小化 toplevel

请求取消最小化 toplevel。如果最小化状态实际发生变化,将通过 state 事件指示。

activate(seat: object<wl_seat>)
参数
类型
描述
seatobject<wl_seat>
激活 toplevel

请求在给定 seat 上激活此 toplevel。不保证 toplevel 会被实际激活。

close()
请求关闭 toplevel

向 toplevel 发送关闭自身的请求。合成器通常会使用特定于 shell 的方法来执行此请求,例如发送 xdg_toplevel.close 事件。但这不保证 toplevel 会被实际销毁。如果并且当这种情况发生时,将发出 zwlr_foreign_toplevel_handle_v1.closed 事件。

set_rectangle(surface: object<wl_surface>, x: int, y: int, width: int, height: int)
参数
类型
描述
surfaceobject<wl_surface>
xint
yint
widthint
heightint
代表 toplevel 的矩形区域

此请求中指定的表面矩形对应于使用此协议的应用代表给定 toplevel 的位置。合成器可以将其用作某些操作(如最小化)的提示。但客户端不需要设置此值,在这种情况下合成器可以自由决定默认值。

如果客户端指定了多个矩形,则只考虑最后一个。

尺寸以表面局部坐标给出。 设置 width=height=0 将移除已设置的矩形。

destroy()
销毁 zwlr_foreign_toplevel_handle_v1 对象

销毁 zwlr_foreign_toplevel_handle_v1 对象。

此请求应在客户端不再使用该 toplevel 时或在 closed 事件之后调用,以完成对象的销毁。

set_fullscreen(output: object<wl_output>)
参数
类型
描述
outputobject<wl_output>允许为空
请求将 toplevel 设为全屏

请求在给定输出上将 toplevel 设为全屏。如果全屏状态和/或 toplevel 可见的输出实际发生变化,将通过 state 和 output_enter/leave 事件指示。

output 参数只是对合成器的提示。此外,如果 output 为 NULL,合成器应决定在哪个输出上将 toplevel 设为全屏(如果有的话)。

unset_fullscreen()
请求取消 toplevel 的全屏状态

请求取消 toplevel 的全屏状态。如果全屏状态实际发生变化,将通过 state 事件指示。

title(title: string)
参数
类型
描述
titlestring
标题变更

每当 toplevel 的标题发生变化时,都会发出此事件。

app_id(app_id: string)
参数
类型
描述
app_idstring
app-id 变更

每当 toplevel 的 app-id 发生变化时,都会发出此事件。

output_enter(output: object<wl_output>)
参数
类型
描述
outputobject<wl_output>
toplevel 进入了某个输出

每当 toplevel 在给定输出上变为可见时,都会发出此事件。一个 toplevel 可能在多个输出上可见。

output_leave(output: object<wl_output>)
参数
类型
描述
outputobject<wl_output>
toplevel 离开了某个输出

每当 toplevel 在给定输出上不再可见时,都会发出此事件。保证在此之前已发出具有相同输出的 output_enter 事件。

state(state: array)
参数
类型
描述
statearray
toplevel 状态已变更

此事件在 zlw_foreign_toplevel_handle_v1 创建后立即发出,以及每次 toplevel 状态发生变化时发出,无论是由于合成器操作还是此协议中的请求。

done()
toplevel 的所有信息已发送完毕

此事件在 toplevel 状态的所有更改发送完毕后发出。

这允许将 zwlr_foreign_toplevel_handle_v1 属性的更改视为原子操作,即使它们通过多个事件发生。

closed()
此 toplevel 已被销毁

此事件表示 toplevel 已被销毁。保证不会再有此 zwlr_foreign_toplevel_handle_v1 的任何事件。toplevel 本身变为惰性,因此除 destroy 请求外,任何请求都将被忽略。

参数
类型
描述
parentobject<zwlr_foreign_toplevel_handle_v1>允许为空
父级变更

每当 toplevel 的父级发生变化时,都会发出此事件。

当父级句柄被客户端销毁时,不会发出事件。

参数
描述
maximized0
toplevel 已最大化
minimized1
toplevel 已最小化
activated2
toplevel 处于活动状态
fullscreen起始版本 23
toplevel 已全屏
toplevel 的状态类型

toplevel 可以具有的不同状态。这些状态与 xdg-toplevel 中定义的同名状态具有相同含义。

参数
描述
invalid_rectangle0
提供的矩形无效

合成器支持

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
zwlr_foreign_toplevel_manager_v1
x
x
x
3
3
x
3
3
2
x
x
3
3
3
3
3
3
x

Copyright © 2018 Ilia Bozhinov

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 许可。