通过客户端配置服务器输出

此接口使客户端能够通过服务器设置输出设备的属性,用于屏幕配置。为此,输出设备通过全局 kde_output_device_v2 对象引用。

outputmanagement (wl_global) -------------------------- request:

  • create_configuration -> outputconfiguration (wl_resource)

outputconfiguration (wl_resource) -------------------------- requests:

  • enable(outputdevice, bool)
  • mode(outputdevice, mode)
  • transformation(outputdevice, flag)
  • position(outputdevice, x, y)
  • apply

events:

  • applied
  • failed

服务器将一个 outputmanagement 对象注册为全局对象。要配置输出,客户端请求 create_configuration,该请求提供一个引用 outputconfiguration 的资源用于一次性配置。这样服务器就知道哪些请求属于一起,并可以按此分组。

在 outputconfiguration 对象上,客户端为每个输出调用是否启用该输出、应设置哪个模式(通过引用已公布模式列表中的模式)以及输出的全局位置。以这种方式配置完所有输出后,客户端调用 apply。 此时(而非更早)服务器应尝试应用配置。如果成功,服务器发出 applied 信号,否则发出 failed 信号,以便配置客户端了解其配置请求的结果。

通过这种设计,如果服务器内部支持,该接口可以实现原子性的输出配置更改。

警告!此文件中描述的协议是桌面环境的实现细节。普通客户端不得使用此协议。可能会添加不向后兼容的更改,而无需递增扩展的主版本号。

create_configuration(id: new_id<kde_output_configuration_v2>)
参数
类型
描述
idnew_id<kde_output_configuration_v2>
提供用于配置输出的 outputconfiguration 对象

请求一个 outputconfiguration 对象,客户端可以通过它配置输出设备。

create_mode_list(id: new_id<kde_mode_list_v2>)
参数
类型
描述
idnew_id<kde_mode_list_v2>
创建自定义模式列表

有关详细信息,请参阅 kde_mode_list_v2 和 kde_output_configuration_v2.set_custom_modes 的描述。


配置单个输出设备

outputconfiguration 是一个客户端特定的资源,可用于请求服务器对可用输出设备应用更改。

客户端从注册表接收输出设备列表。当它想要应用新设置时,它从 outputmanagement 全局对象创建一个配置对象,通过此对象的 enable、scale、transform 和 mode 调用写入更改。然后它要求服务器以原子方式应用这些设置,例如通过 Linux 的 DRM 接口。

服务器发回信号,指示新设置是已成功应用还是应用失败。outputdevice 对象在更改应用到硬件之后、服务器端发送 applied 事件之前更新。

参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice to be en- or disabled
enableint
1 to enable or 0 to disable this output
启用或禁用输出

将输出标记为启用或禁用。

参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this mode change applies to
modeobject<kde_output_device_mode_v2>
the mode to apply
将输出设备切换到指定模式

为给定输出设置模式。

transform(outputdevice: object<kde_output_device_v2>, transform: int)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this transformation change applies to
transformint
transform enum
变换输出设备

为给定输出设置变换。

position(outputdevice: object<kde_output_device_v2>, x: int, y: int)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this position applies to
xint
position on the x-axis
yint
position on the y-axis
在全局空间中定位输出

设置此输出设备的位置。(x,y) 描述输出在全局空间中的左上角,其中全局空间的原点 (0,0) 必须与最左侧输出的左上角对齐,如果这不能定义唯一的输出,则与顶部输出对齐。

输出之间不能有间隙或重叠,即输出在水平、垂直或两个方向上堆叠。

scale(outputdevice: object<kde_output_device_v2>, scale: fixed)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this scale change applies to
scalefixed
scaling factor
设置此输出的缩放因子

设置此输出设备的缩放因子。

apply()
将配置更改应用到所有输出设备

请求服务器在服务器端将通过此 outputconfiguration 对象请求的属性更改应用到所有输出。

输出配置只能应用一次。如果第二次调用 apply 请求,将发布 already_applied 协议错误。

destroy()
释放 outputconfiguration 对象
overscan(outputdevice: object<kde_output_device_v2>, overscan: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice overscan applies to
overscanuint
overscan value
设置过扫描值

以百分比值设置此输出设备的过扫描值。

参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this VRR policy applies to
policyuint<kde_output_configuration_v2.vrr_policy>
the vrr policy to apply
设置 VRR 策略

设置合成器在使用可变刷新率时应采用的策略。

参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice the rgb range applies to
rgb_rangeuint<kde_output_configuration_v2.rgb_range>
RGB 范围

应使用全范围还是有限范围的颜色。

set_primary_output(output: object<kde_output_device_v2>)
参数
类型
描述
outputobject<kde_output_device_v2>允许为空
选择使用哪个主输出
set_priority(outputdevice: object<kde_output_device_v2>, priority: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice the index applies to
priorityuint
the priority of the output
设置输出顺序

设置输出在输出顺序列表中的位置,较小的值排在前面。列表没有特定的起始值,此值仅用于排序输出。

输出顺序可用于将桌面环境组件分配到特定屏幕,详见 kde_output_order_v1 和 kde_output-device-v2。请注意,为了行为一致,priority 值在所有已启用的输出中必须是唯一的。

set_high_dynamic_range(outputdevice: object<kde_output_device_v2>, enable_hdr: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
enable_hdruint
1 to enable, 0 to disable hdr
更改是否启用 HDR

设置输出是否应设置为 HDR 模式。

set_sdr_brightness(outputdevice: object<kde_output_device_v2>, sdr_brightness: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
sdr_brightnessuint
设置 SDR 内容的亮度

以 nits 为单位设置标准动态范围内容的亮度。仅在输出处于 HDR 模式时有效。请注意,虽然值以 nits 为单位,但这不一定转化为屏幕上相同的亮度。

set_wide_color_gamut(outputdevice: object<kde_output_device_v2>, enable_wcg: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
enable_wcguint
1 to enable, 0 to disable wcg
更改是否使用广色域

输出是否应使用广色域。

参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
policyuint<kde_output_configuration_v2.auto_rotate_policy>
更改何时使用自动旋转
set_icc_profile_path(outputdevice: object<kde_output_device_v2>, profile_path: string)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
profile_pathstring
更改使用的 ICC 配置文件
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
max_peak_brightnessint
-1 for not overriding, or positive values in nits
max_frame_average_brightnessint
-1 for not overriding, or positive values in nits
min_brightnessint
-1 for not overriding, or positive values in 0.0001 nits
覆盖屏幕亮度限制的元数据
set_sdr_gamut_wideness(outputdevice: object<kde_output_device_v2>, gamut_wideness: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
gamut_widenessuint
0 means rec.709 primaries, 10000 means native primaries
描述 sRGB 应用程序假定的色域

这可用于提供用户基于许多现代 sRGB 屏幕上的默认体验所期望的 sRGB 应用程序应有的颜色。

参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
color_profile_sourceuint<kde_output_configuration_v2.color_profile_source>
the color profile source
合成器应在输出上使用哪个颜色配置文件来源
set_brightness(outputdevice: object<kde_output_device_v2>, brightness: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
brightnessuint
brightness in 0-10000
亮度乘数

设置输出的亮度调节器。它不指定任何绝对值,而只是其他亮度值(如 sdr_brightness 和 brightness_metadata)之上的乘数。0 是最小亮度(不是完全黑暗),10000 是最大亮度。 在版本 8 及以下的 HDR 激活时支持,在版本 9 及以上时在设备支持 "brightness" 能力时支持。

参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
preferenceuint<kde_output_configuration_v2.color_power_tradeoff>
设置首选的颜色/功耗权衡
set_dimming(outputdevice: object<kde_output_device_v2>, multiplier: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
multiplieruint
multiplier in 0-10000
调光乘数

设置输出的调光乘数。这类似于亮度设置,但它仅用于临时设置,不是持久的,并且可能因显示器而有不同的实现方式。0 是最小调光因子(不是完全黑暗),10000 表示输出未被调光。

仅在同时支持 "brightness" 能力时才支持此功能。

set_replication_source(outputdevice: object<kde_output_device_v2>, source: string)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
sourcestring
uuid of the source output
用于镜像的源输出

设置输出设备应镜像其视口的源输出。

set_ddc_ci_allowed(outputdevice: object<kde_output_device_v2>, allowed: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
alloweduint
1 if allowed, 0 if disabled
是否应使用 DDC/CI 控制亮度等
set_max_bits_per_color(outputdevice: object<kde_output_device_v2>, max_bpc: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
max_bpcuint
0 for the default / automatic
覆盖最大每色位数

这限制了发送到显示器的每种颜色的位数。

参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
policyuint<kde_output_configuration_v2.edr_policy>
设置合成器何时可以应用 EDR

当 EDR 启用时,合成器可以将背光提高到用户指定设置之上,以便在没有原生 HDR 支持的显示器上呈现 HDR 内容。这通常会带来更好的视觉效果,但也会增加电池使用量。

set_sharpness(outputdevice: object<kde_output_device_v2>, sharpness: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
sharpnessuint
sharpness in 0-10000
锐度强度

这是输出的锐度调节器。0 表示禁用锐度,10000 表示最大锐度。

set_custom_modes(outputdevice: object<kde_output_device_v2>, modes: object<kde_mode_list_v2>)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
modesobject<kde_mode_list_v2>
设置自定义模式列表

设置此输出的自定义模式列表。合成器将响应生成请求的模式并将其添加到输出(或删除不再在列表中的模式)。这对于超频显示器或解决损坏的 EDID 很有用。 请注意,不保证任何自定义模式实际上能工作,甚至不保证不会损坏显示器(对于 CRT)。确保每个添加的模式适合其显示器完全是用户的责任。

set_auto_brightness(outputdevice: object<kde_output_device_v2>, enabled: uint)
参数
类型
描述
outputdeviceobject<kde_output_device_v2>
outputdevice this setting applies to
enableduint
1 for enabled, 0 for disabled
是否启用自动亮度
applied()
配置更改已应用

在服务器成功应用更改后发送。

failed()
配置更改应用失败

如果服务器拒绝更改或应用失败则发送。

failure_reason(reason: string)
参数
类型
描述
reasonstring
reason for failure
失败原因

描述应用输出配置失败的原因。仅在 failure 事件之前发送。

error { already_applied } 
参数
描述
already_applied0
配置已被应用
kde_output_configuration_v2 错误值

这些错误可以在响应 kde_output_configuration_v2 请求时发出。

vrr_policy { never, always, automatic } 
参数
描述
never0
always1
automatic2
描述 VRR 策略

描述合成器何时可以使用可变刷新率。

rgb_range { automatic, full, limited } 
参数
描述
automatic0
full1
limited2
描述 RGB 范围策略

此输出应使用全范围还是有限范围的 RGB。

auto_rotate_policy { never, in_tablet_mode, always } 
参数
描述
never0
in_tablet_mode1
always2
描述何时使用自动旋转
color_profile_source { sRGB, ICC, EDID } 
参数
描述
sRGB0
ICC1
EDID2
合成器应在输出上使用哪个颜色配置文件来源
color_power_tradeoff { efficiency, accuracy } 
参数
描述
efficiency0
优先考虑效率和性能
accuracy1
优先考虑准确性
功耗与准确性之间的权衡

合成器可以在性能、功耗和颜色准确性之间做很多事情。此设置描述了用户关于应在哪个方向进行权衡的高级偏好。

edr_policy { never, always } 
参数
描述
never0
always1
合成器何时可以使用 EDR

自定义模式列表

此列表通过首先设置每个相关属性,然后调用 add_mode 来添加具有这些属性的模式来填充。例如,可以调用

  • set_resolution
  • set_refresh_rate
  • set_reduced_blanking
  • add_mode

add_mode 不会重置先前设置的属性,它们在对象被销毁之前有效。合成器可能对某些属性(如 reduced_blanking)有合理的默认值,但为了获得一致的结果,最好每次都设置每个已知属性。

参数 resolution 和 refresh rate 是必需的,如果未设置,将发出 missing_parameters 错误。

destroy
类型: destructor
destroy()
销毁模式列表对象
add_mode()
将当前模式配置添加到列表
set_resolution(width: uint, height: uint)
参数
类型
描述
widthuint
heightuint
set_refresh_rate(rate: uint)
参数
类型
描述
rateuint
in milliHz
set_reduced_blanking(reduced: uint)
参数
类型
描述
reduceduint
1 for reduced blanking, 0 for normal vblank duration
模式是否应具有减少消隐

减少消隐是一种优化,可以通过减少 vblank 所需的时间来降低显示模式的带宽/时序要求。由于并非所有显示器都支持它,可能仍需要关闭它(如 CRT 需要完全消隐)。

参数
描述
missing_parameters0
未设置必需的参数
kde_mode_list_v2 错误值

这些错误可以在响应 add_mode 请求时发出。


合成器支持

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
kde_output_management_v2
x
x
x
x
x
19
x
x
x
x
x
x
x
x
x
x
x
x

SPDX-FileCopyrightText: 2008-2011 Kristian Høgsberg SPDX-FileCopyrightText: 2010-2011 Intel Corporation SPDX-FileCopyrightText: 2012-2013 Collabora, Ltd. SPDX-FileCopyrightText: 2015 Sebastian Kügler <sebas@kde.org> SPDX-FileCopyrightText: 2021 Méven Car <meven.car@enioka.com> SPDX-FileCopyrightText: 2023 Xaver Hugl <xaver.hugl@kde.org>

SPDX-License-Identifier: MIT-CMU

Footer

© 2026 Wayland Explorer

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

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