KDE plasma window management
此接口用于管理应用程序窗口。 它提供了显示和隐藏桌面的请求,并在每次窗口创建时发出事件,以便客户端可以使用它来管理窗口。
一次只有一个客户端可以绑定此接口。
警告!此文件中描述的协议是桌面环境的实现细节。普通客户端不得使用此协议。可能会添加不向后兼容的更改,而无需递增扩展的主版本号。
get_window(id: new_id<org_kde_plasma_window>, internal_window_id: uint)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<org_kde_plasma_window> | |
| internal_window_id | uint | 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)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<org_kde_plasma_window> | |
| internal_window_uuid | string | The internal window uuiid of the window to create |
get_stacking_order(stacking_order: new_id<org_kde_plasma_stacking_order>)
参数 | 类型 | 描述 |
|---|---|---|
| stacking_order | new_id<org_kde_plasma_stacking_order> |
show_desktop_changed(state: uint)
参数 | 类型 | 描述 |
|---|---|---|
| state | uint | new state |
当显示桌面模式发生变化时会发送此事件。例如进入或离开该模式时。
绑定接口时会发送当前状态。
stacking_order_changed(ids: array)
参数 | 类型 | 描述 |
|---|---|---|
| ids | array | internal windows id array |
当堆叠顺序发生变化时以及绑定时会发送此事件。
从版本 17 起此事件已弃用,将不再发送。
stacking_order_uuid_changed(uuids: string)
参数 | 类型 | 描述 |
|---|---|---|
| uuids | string | internal windows id ;-separated |
当堆叠顺序发生变化时以及绑定时会发送此事件。
从版本 17 起此事件已弃用,将不再发送。
此事件会在窗口映射后立即发送。
stacking_order_changed_2()
当堆叠顺序发生变化时会发送此事件。
state { active, minimized, maximized, fullscreen, keep_above, keep_below, on_all_desktops, demands_attention, closeable, minimizable, maximizable, fullscreenable, skiptaskbar, shadeable, shaded, movable, resizable, virtual_desktop_changeable, skipswitcher, no_border, can_set_no_border, exclude_from_capture }
参数 | 值 | 描述 |
|---|---|---|
| active | 0x1 | |
| minimized | 0x2 | |
| maximized | 0x4 | |
| fullscreen | 0x8 | |
| keep_above | 0x10 | |
| keep_below | 0x20 | |
| on_all_desktops | 0x40 | |
| demands_attention | 0x80 | |
| closeable | 0x100 | |
| minimizable | 0x200 | |
| maximizable | 0x400 | |
| fullscreenable | 0x800 | |
| skiptaskbar起始版本 2 | 0x1000 | |
| shadeable起始版本 3 | 0x2000 | |
| shaded起始版本 3 | 0x4000 | |
| movable起始版本 3 | 0x8000 | |
| resizable起始版本 3 | 0x10000 | |
| virtual_desktop_changeable起始版本 3 | 0x20000 | |
| skipswitcher起始版本 9 | 0x40000 | |
| no_border起始版本 19 | 0x80000 | |
| can_set_no_border起始版本 19 | 0x100000 | |
| exclude_from_capture起始版本 20 | 0x200000 |
管理和控制应用程序窗口。
一次只有一个客户端可以绑定此接口。
设置窗口状态。
state 参数的值由 org_kde_plasma_window_management.state 描述,可以在位域中组合使用。flags 位域描述哪些标志需要被设置,state 位域描述已设置标志的值。
set_virtual_desktop(number: uint)
参数 | 类型 | 描述 |
|---|---|---|
| number | uint | zero based virtual desktop number |
已弃用:请使用 enter_virtual_desktop 将窗口映射到不同的虚拟桌面。
要使窗口在所有虚拟桌面上显示,请调用 org_kde_plasma_window.set_state 请求并在位域中指定 on_all_desktops 状态。
设置此窗口的任务栏条目的几何形状。该几何形状是相对于特定面板的。
unset_minimized_geometry(panel: object<wl_surface>)
参数 | 类型 | 描述 |
|---|---|---|
| panel | object<wl_surface> |
移除特定面板的任务几何信息。
destroy()
移除绑定到此 org_kde_plasma_window 的资源。
get_icon(fd: fd)
参数 | 类型 | 描述 |
|---|---|---|
| fd | fd | file descriptor for the icon |
合成器会将窗口图标写入提供的文件描述符中。数据是通过 QDataStream 序列化的 QIcon。
request_enter_virtual_desktop(id: string)
参数 | 类型 | 描述 |
|---|---|---|
| id | string | desktop id |
使窗口进入一个虚拟桌面。窗口可以进入多个虚拟桌面。如果 id 为空或无效,则不执行任何操作。
request_enter_new_virtual_desktop()
RFC:是否可以通过空 id 调用 request_enter_virtual_desktop 来实现? 使窗口进入一个新的虚拟桌面。如果服务器同意请求,它将创建一个新的虚拟桌面并将窗口分配给它。
request_leave_virtual_desktop(id: string)
参数 | 类型 | 描述 |
|---|---|---|
| id | string | desktop id |
使窗口退出一个虚拟桌面。如果窗口退出所有桌面,则视为在所有桌面上。
request_enter_activity(id: string)
参数 | 类型 | 描述 |
|---|---|---|
| id | string | activity id |
使窗口进入一个活动。窗口可以进入多个活动。如果 id 为空或无效,则不执行任何操作。
请求将此窗口显示在指定的输出上。
state_changed(flags: uint)
参数 | 类型 | 描述 |
|---|---|---|
| flags | uint | bitfield of state flags |
窗口状态发生变化时会立即发送此事件。
state 参数的值由 org_kde_plasma_window_management.state 描述。
virtual_desktop_changed(number: int)
参数 | 类型 | 描述 |
|---|---|---|
| number | int | zero based virtual desktop number |
已弃用:请改用 virtual_desktop_entered 和 virtual_desktop_left 当窗口被移动到另一个虚拟桌面时会发送此事件。
如果窗口在所有虚拟桌面上变为可见,则不会发送此事件。
themed_icon_name_changed(name: string)
参数 | 类型 | 描述 |
|---|---|---|
| name | string | the new themed icon name |
当主题图标名称发生变化时会发送此事件。可能为 null。
initial_state()
所有初始状态发送给客户端后会立即发送此事件。如果 Plasma 窗口已经被取消映射,unmapped 事件将在 initial_state 事件之前发送。
parent_window(parent: object<org_kde_plasma_window>)
参数 | 类型 | 描述 |
|---|---|---|
| parent | object<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 没有父窗口。
参数 | 类型 | 描述 |
|---|---|---|
| x | int | x position of the org_kde_plasma_window |
| y | int | y position of the org_kde_plasma_window |
| width | uint | width of the org_kde_plasma_window |
| height | uint | height of the org_kde_plasma_window |
当此 org_kde_plasma_window 的窗口几何形状发生变化时会发送此事件。坐标使用窗口系统的绝对坐标。
icon_changed()
当窗口图标发生变化但没有主题图标名称时会发送此事件。常见例子是具有基于像素图图标的 Xwayland 窗口。
客户端可以使用 get_icon 请求图标。
pid_changed(pid: uint)
参数 | 类型 | 描述 |
|---|---|---|
| pid | uint | process id |
当合成器设置了此窗口所属的进程 ID 时会发送此事件。应在 initial_state 发送之前设置一次。
virtual_desktop_entered(id: string)
参数 | 类型 | 描述 |
|---|---|---|
| id | string | desktop id |
当窗口进入新的虚拟桌面时会发送此事件。窗口可以在多个桌面上,也可以不在任何桌面上:此时视为在所有桌面上。
virtual_desktop_left(is: string)
参数 | 类型 | 描述 |
|---|---|---|
| is | string | desktop id |
当窗口离开一个虚拟桌面时会发送此事件。如果窗口离开所有桌面,可视为在所有桌面上。如果窗口被手动添加到所有桌面,服务器必须为窗口之前所在的每个桌面发送 virtual_desktop_left,才能真正视为在所有桌面上。
application_menu(service_name: string, object_path: string)
参数 | 类型 | 描述 |
|---|---|---|
| service_name | string | |
| object_path | string |
当窗口的应用程序菜单发生变化后会发送此事件。
activity_entered(id: string)
参数 | 类型 | 描述 |
|---|---|---|
| id | string | activity id |
当窗口进入一个活动时会发送此事件。窗口可以在多个活动上,也可以不在任何活动上:此时视为在所有活动上。
activity_left(id: string)
参数 | 类型 | 描述 |
|---|---|---|
| id | string | activity id |
当窗口离开一个活动时会发送此事件。如果窗口离开所有活动,将视为在所有活动上。如果窗口被手动添加到所有活动,服务器必须为窗口之前所在的每个活动发送 activity_left,才能真正视为在所有活动上。
resource_name_changed(resource_name: string)
参数 | 类型 | 描述 |
|---|---|---|
| resource_name | string | resource name |
当窗口的 X11 资源名称发生变化时会发送此事件。仅对 XWayland 窗口设置。
激活管理器接口提供了一种在应用程序即将被激活时获取通知的方式。
destroy()
销毁激活管理器对象。由此管理器对象引入的激活对象不受影响。
activation(id: new_id<org_kde_plasma_activation>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<org_kde_plasma_activation> |
当应用程序被设置为激活时会发出此事件。它提供了一个 org_kde_plasma_activation 实例,该实例将告诉我们 app_id 和激活的程度。
destroy()
通知合成器 org_kde_plasma_activation 对象将不再使用。
当此对象被创建时,合成器会按堆叠顺序为每个窗口发送一个 window 事件,然后发送 done 事件并销毁此对象。
合成器支持
Copyright
SPDX-FileCopyrightText: 2013-2014 Pier Luigi Fiorini
SPDX-License-Identifier: LGPL-2.1-or-later