wlr data control

控制数据设备

此协议允许特权客户端控制数据设备。特别是,客户端将能够管理当前选区并担任剪贴板管理器的角色。

警告!此文件中描述的协议是实验性的,可能会进行不兼容的更改。向后兼容的更改可能会与相应的接口版本号一起添加。向后不兼容的更改通过在协议和接口名称中增加版本号并重置接口版本号来完成。一旦协议宣布稳定,协议和接口名称中的 'z' 前缀和版本号将被移除,接口版本号将被重置。

注意!此协议已弃用,不适用于生产环境。对于剪贴板管理,请使用 ext-data-control-v1 协议。

控制数据设备的管理器

此接口是一个管理器,允许创建每个 seat 的数据设备控制。

create_data_source(id: new_id<zwlr_data_control_source_v1>)
参数
类型
描述
idnew_id<zwlr_data_control_source_v1>
data source to create
创建新的数据源

创建一个新的数据源。

get_data_device(id: new_id<zwlr_data_control_device_v1>, seat: object<wl_seat>)
参数
类型
描述
idnew_id<zwlr_data_control_device_v1>
seatobject<wl_seat>
获取 seat 的数据设备

创建一个可用于管理 seat 选区的数据设备。

destroy()
销毁管理器

管理器创建的所有对象将仍然有效,直到调用它们相应的销毁请求。


管理 seat 的数据设备

此接口允许客户端管理 seat 的选区。

当 seat 被销毁时,此对象变为惰性。

set_selection(source: object<zwlr_data_control_source_v1>)
参数
类型
描述
sourceobject<zwlr_data_control_source_v1>允许为空
将数据复制到选区

此请求要求合成器代表客户端将选区设置为来自源的数据。

给定的源不能在任何进一步的 set_selection 或 set_primary_selection 请求中使用。尝试使用先前使用的源是协议错误。

要取消设置选区,请将源设置为 NULL。

destroy()
销毁此数据设备

销毁数据设备对象。

set_primary_selection(source: object<zwlr_data_control_source_v1>)
参数
类型
描述
sourceobject<zwlr_data_control_source_v1>允许为空
将数据复制到主选区

此请求要求合成器代表客户端将主选区设置为来自源的数据。

给定的源不能在任何进一步的 set_selection 或 set_primary_selection 请求中使用。尝试使用先前使用的源是协议错误。

要取消设置主选区,请将源设置为 NULL。

如果合成器不支持主选区,将忽略此请求。

data_offer(id: new_id<zwlr_data_control_offer_v1>)
参数
类型
描述
idnew_id<zwlr_data_control_offer_v1>
引入新的 wlr_data_control_offer

data_offer 事件引入一个新的 wlr_data_control_offer 对象,该对象随后将用于 wlr_data_control_device.selection 事件(用于常规剪贴板选区)或 wlr_data_control_device.primary_selection 事件(用于主剪贴板选区)。紧接在 wlr_data_control_device.data_offer 事件之后,新的 data_offer 对象将发出 wlr_data_control_offer.offer 事件以描述其提供的 MIME 类型。

selection(id: object<zwlr_data_control_offer_v1>)
参数
类型
描述
idobject<zwlr_data_control_offer_v1>允许为空
通知新的选区

selection 事件发送以通知客户端此设备选区的新 wlr_data_control_offer。wlr_data_control_device.data_offer 和 wlr_data_control_offer.offer 事件在此事件之前立即发送以引入数据选区对象。当设置新选区时,selection 事件发送给客户端。wlr_data_control_offer 在收到新的 wlr_data_control_offer 或 NULL 之前有效。客户端在收到此事件时必须销毁先前的选区 wlr_data_control_offer(如果有)。

第一个 selection 事件在绑定 wlr_data_control_device 对象时发送。

finished()
此数据控制不再有效

此数据控制对象不再有效,应由客户端销毁。

primary_selection(id: object<zwlr_data_control_offer_v1>)
参数
类型
描述
idobject<zwlr_data_control_offer_v1>允许为空
通知新的主选区

primary_selection 事件发送以通知客户端此设备主选区的新 wlr_data_control_offer。wlr_data_control_device.data_offer 和 wlr_data_control_offer.offer 事件在此事件之前立即发送以引入数据选区对象。当设置新的主选区时,primary_selection 事件发送给客户端。wlr_data_control_offer 在收到新的 wlr_data_control_offer 或 NULL 之前有效。客户端在收到此事件时必须销毁先前的主选区 wlr_data_control_offer(如果有)。

如果合成器支持主选区,第一个 primary_selection 事件在绑定 wlr_data_control_device 对象时发送。

error { used_source } 
参数
描述
used_source1
提供给 set_selection 或 set_primary_selection 的源已被使用过

提供数据传输

wlr_data_control_source 对象是 wlr_data_control_offer 的源端。它由数据传输中的源客户端创建,提供了描述所提供数据以及响应数据传输请求的方式。

offer(mime_type: string)
参数
类型
描述
mime_typestring
MIME type offered by the data source
添加提供的 MIME 类型

此请求将 MIME 类型添加到向目标公布的 MIME 类型集合中。可以调用多次以提供多种类型。

在 wlr_data_control_device.set_selection 之后调用此请求是协议错误。

destroy()
销毁此源

销毁数据源对象。

send(mime_type: string, fd: fd)
参数
类型
描述
mime_typestring
MIME type for the data
fdfd
file descriptor for the data
发送数据

向客户端请求数据。按指定的 MIME 类型通过传递的文件描述符发送数据,然后关闭它。

cancelled()
选区已被取消

此数据源不再有效。数据源已被另一个数据源替换。

客户端应清理并销毁此数据源。

error { invalid_offer } 
参数
描述
invalid_offer1
在 wlr_data_control_device.set_selection 之后发送的 offer

提供数据传输

wlr_data_control_offer 代表由另一个客户端(源客户端)提供的用于传输的数据。该 offer 描述了数据可以转换为的不同 MIME 类型,并提供了直接从源客户端传输数据的机制。

receive(mime_type: string, fd: fd)
参数
类型
描述
mime_typestring
MIME type desired by receiver
fdfd
file descriptor for data transfer
请求传输数据

要传输提供的数据,客户端发出此请求并指明它希望接收的 MIME 类型。传输通过传递的文件描述符(通常使用 pipe 系统调用创建)进行。源客户端按请求的 MIME 类型表示写入数据,然后关闭文件描述符。

接收客户端从管道的读取端读取直到 EOF,然后关闭其端,此时传输完成。

此请求可以针对不同的 MIME 类型多次发生。

destroy()
销毁此 offer

销毁数据 offer 对象。

offer(mime_type: string)
参数
类型
描述
mime_typestring
offered MIME type
公布提供的 MIME 类型

在创建 wlr_data_control_offer 对象后立即发送。每个提供的 MIME 类型一个事件。


合成器支持

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_data_control_manager_v1
x
2
x
2
2
x
2
x
x
x
x
2
2
2
2
2
2
x

Copyright © 2018 Simon Ser Copyright © 2019 Ivan Molodetskikh

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