wlr data control
此协议允许特权客户端控制数据设备。特别是,客户端将能够管理当前选区并担任剪贴板管理器的角色。
警告!此文件中描述的协议是实验性的,可能会进行不兼容的更改。向后兼容的更改可能会与相应的接口版本号一起添加。向后不兼容的更改通过在协议和接口名称中增加版本号并重置接口版本号来完成。一旦协议宣布稳定,协议和接口名称中的 'z' 前缀和版本号将被移除,接口版本号将被重置。
注意!此协议已弃用,不适用于生产环境。对于剪贴板管理,请使用 ext-data-control-v1 协议。
此接口是一个管理器,允许创建每个 seat 的数据设备控制。
create_data_source(id: new_id<zwlr_data_control_source_v1>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_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>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zwlr_data_control_device_v1> | |
| seat | object<wl_seat> |
创建一个可用于管理 seat 选区的数据设备。
此接口允许客户端管理 seat 的选区。
当 seat 被销毁时,此对象变为惰性。
set_selection(source: object<zwlr_data_control_source_v1>)
参数 | 类型 | 描述 |
|---|---|---|
| source | object<zwlr_data_control_source_v1>允许为空 |
此请求要求合成器代表客户端将选区设置为来自源的数据。
给定的源不能在任何进一步的 set_selection 或 set_primary_selection 请求中使用。尝试使用先前使用的源是协议错误。
要取消设置选区,请将源设置为 NULL。
set_primary_selection(source: object<zwlr_data_control_source_v1>)
参数 | 类型 | 描述 |
|---|---|---|
| source | object<zwlr_data_control_source_v1>允许为空 |
此请求要求合成器代表客户端将主选区设置为来自源的数据。
给定的源不能在任何进一步的 set_selection 或 set_primary_selection 请求中使用。尝试使用先前使用的源是协议错误。
要取消设置主选区,请将源设置为 NULL。
如果合成器不支持主选区,将忽略此请求。
data_offer(id: new_id<zwlr_data_control_offer_v1>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zwlr_data_control_offer_v1> |
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>)
参数 | 类型 | 描述 |
|---|---|---|
| id | object<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 对象时发送。
primary_selection(id: object<zwlr_data_control_offer_v1>)
参数 | 类型 | 描述 |
|---|---|---|
| id | object<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_source | 1 | 提供给 set_selection 或 set_primary_selection 的源已被使用过 |
wlr_data_control_source 对象是 wlr_data_control_offer 的源端。它由数据传输中的源客户端创建,提供了描述所提供数据以及响应数据传输请求的方式。
offer(mime_type: string)
参数 | 类型 | 描述 |
|---|---|---|
| mime_type | string | MIME type offered by the data source |
此请求将 MIME 类型添加到向目标公布的 MIME 类型集合中。可以调用多次以提供多种类型。
在 wlr_data_control_device.set_selection 之后调用此请求是协议错误。
向客户端请求数据。按指定的 MIME 类型通过传递的文件描述符发送数据,然后关闭它。
error { invalid_offer }
参数 | 值 | 描述 |
|---|---|---|
| invalid_offer | 1 | 在 wlr_data_control_device.set_selection 之后发送的 offer |
wlr_data_control_offer 代表由另一个客户端(源客户端)提供的用于传输的数据。该 offer 描述了数据可以转换为的不同 MIME 类型,并提供了直接从源客户端传输数据的机制。
合成器支持
Cage | COSMIC | GameScope | Hyprland | Jay | KWin | Labwc | Louvre | Mir | Muffin | Mutter | niri | phoc | river | Sway | Treeland | Wayfire | Weston | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| zwlr_data_control_manager_v1 | x | 2 | x | 2 | 2 | x | 2 | x | x | x | x | 2 | 2 | 2 | 2 | 2 | 2 | x |
Copyright
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.