XDG output

描述输出区域的协议

此协议旨在以更符合桌面系统中输出概念的方式描述输出。

某些信息更特定于桌面系统的输出概念,在其他应用中可能没有意义,例如 IVI 系统。

通常,桌面系统上的全局合成器空间由一组连续或重叠的矩形区域组成。

此协议中定义的 logical_position 和 logical_size 事件可能提供与 wl_output 中已有的对应事件相同的信息,在这种情况下,应优先使用此协议提供的信息而非 wl_output 中的等效信息。目标是将桌面特定概念(如全局合成器空间中的输出位置等)移出核心 wl_output 协议。

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

管理 xdg_output 对象

xdg_output 对象的全局工厂接口。

destroy()
销毁 xdg_output_manager 对象

使用此请求,客户端可以告知服务器它不再使用 xdg_output_manager 对象。

已通过此实例创建的任何对象不受影响。

get_xdg_output(id: new_id<zxdg_output_v1>, output: object<wl_output>)
参数
类型
描述
idnew_id<zxdg_output_v1>
outputobject<wl_output>
从 wl_output 创建 xdg 输出

为给定的 wl_output 创建一个新的 xdg_output 对象。


合成器逻辑输出区域

xdg_output 描述了合成器几何结构的一部分。

这通常对应于显示合成器空间一部分的监视器。

对于版本 3 及以上的对象,在所有 xdg_output 属性发送完毕后(在对象创建时以及属性更新时),会发送 wl_output.done 事件。这使得输出属性的更改可以被视为原子操作,即使它们通过多个事件发生。

destroy
类型: destructor
destroy()
销毁 xdg_output 对象

使用此请求,客户端可以告知服务器它不再使用 xdg_output 对象。

logical_position(x: int, y: int)
参数
类型
描述
xint
x position within the global compositor space
yint
y position within the global compositor space
输出在全局合成器空间中的位置

position 事件描述了 wl_output 在全局合成器空间中的位置。

logical_position 事件在创建 xdg_output(参见 xdg_output_manager.get_xdg_output)后发送,以及当输出在全局合成器空间中的位置发生变化时发送。

logical_size(width: int, height: int)
参数
类型
描述
widthint
width in global compositor space
heightint
height in global compositor space
输出在全局合成器空间中的大小

logical_size 事件描述了输出在全局合成器空间中的大小。

大多数常规 Wayland 客户端不应关注逻辑大小,而应依赖 xdg_shell 接口。

然而,某些客户端(如 Xwayland)需要此信息来在全局合成器空间中配置其 surface,因为合成器可能应用与输出缩放属性所通告的不同缩放因子(例如,为了实现分数缩放)。

例如,对于 wl_output 模式 3840×2160 和缩放因子 2:

  • 不在合成空间中缩放监视器视口的合成器将通告 3840×2160 的逻辑大小,
  • 使用缩放因子 2 缩放监视器视口的合成器将通告 1920×1080 的逻辑大小,
  • 使用分数缩放 1.5 缩放监视器视口的合成器将通告 2560×1440 的逻辑大小。

例如,对于 wl_output 模式 1920×1080 和 90 度旋转,合成器将通告 1080x1920 的逻辑大小。

logical_size 事件在创建 xdg_output(参见 xdg_output_manager.get_xdg_output)后发送,以及当输出的逻辑大小发生变化时发送,无论是由于应用的缩放变化还是由于相应的输出模式(参见 wl_output.mode)或变换(参见 wl_output.transform)的变化。

done
弃用版本 3
done()
输出的所有信息已发送

此事件在 xdg_output 的所有其他属性发送完毕后发送。

这使得 xdg_output 属性的更改可以被视为原子操作,即使它们通过多个事件发生。

对于版本 3 及以上的对象,此事件已弃用。合成器不再需要发送它,而必须改为发送 wl_output.done。

name
起始版本 2
name(name: string)
参数
类型
描述
namestring
output name
此输出的名称

许多合成器会为其输出分配名称,向用户显示它们,允许按名称配置它们等。客户端可能也希望知道此名称以向用户提供类似的行为。

命名约定由合成器定义,但仅限于字母数字字符和破折号(-)。每个名称在所有 wl_output 全局对象中是唯一的,但如果 wl_output 全局对象被销毁,相同的名称可能会在以后被重用。在相同的硬件和软件配置下,名称在各会话之间也将保持一致。

名称示例包括 'HDMI-A-1'、'WL-1'、'X11-1' 等。但是,不要假设名称反映了底层的 DRM 连接器、X11 连接等。

name 事件在创建 xdg_output(参见 xdg_output_manager.get_xdg_output)后发送。此事件每个 xdg_output 仅发送一次,并且在 wl_output 全局对象的生命周期内名称不会更改。

此事件已弃用,客户端应改为使用 wl_output.name。合成器仍必须支持此事件。

description(description: string)
参数
类型
描述
descriptionstring
output description
此输出的人类可读描述

许多合成器可以生成其输出的人类可读描述。客户端可能也希望知道此描述,以便与用户进行各种目的的沟通。

描述是一个 UTF-8 字符串,其内容没有定义的约定。示例可能包括 'Foocorp 11" Display' 或 'Virtual X11 output via :1'。

description 事件在创建 xdg_output(参见 xdg_output_manager.get_xdg_output)后发送,以及当描述发生变化时发送。描述是可选的,可能根本不会发送。

对于版本 2 及以下的对象,此事件每个 xdg_output 仅发送一次,并且在 wl_output 全局对象的生命周期内描述不会更改。

此事件已弃用,客户端应改为使用 wl_output.description。合成器仍必须支持此事件。


合成器支持

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

Copyright © 2017 Red Hat Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Footer

© 2026 Wayland Explorer

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

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