SPDX-License-Identifier: MIT-CMU
]]>
This interface enables clients to set properties of output devices for screen
configuration purposes via the server. To this end output devices are referenced
by global org_kde_kwin_outputdevice objects.
outputmanagement (wl_global)
--------------------------
request:
* create_configuration -> outputconfiguration (wl_resource)
outputconfiguration (wl_resource)
--------------------------
requests:
* enable(outputdevice, bool)
* mode(outputdevice, mode_id)
* transformation(outputdevice, flag)
* position(outputdevice, x, y)
* apply
events:
* applied
* failed
The server registers one outputmanagement object as a global object. In order
to configure outputs a client requests create_configuration, which provides a
resource referencing an outputconfiguration for one-time configuration. That
way the server knows which requests belong together and can group them by that.
On the outputconfiguration object the client calls for each output whether the
output should be enabled, which mode should be set (by referencing the mode from
the list of announced modes) and the output's global position. Once all outputs
are configured that way, the client calls apply.
At that point and not earlier the server should try to apply the configuration.
If this succeeds the server emits the applied signal, otherwise the failed
signal, such that the configuring client is noticed about the success of its
configuration request.
Through this design the interface enables atomic output configuration changes if
internally supported by the server.
Request an outputconfiguration object through which the client can configure
output devices.
outputconfiguration is a client-specific resource that can be used to ask
the server to apply changes to available output devices.
The client receives a list of output devices from the registry. When it wants
to apply new settings, it creates a configuration object from the
outputmanagement global, writes changes through this object's enable, scale,
transform and mode calls. It then asks the server to apply these settings in
an atomic fashion, for example through Linux' DRM interface.
The server signals back whether the new settings have applied successfully
or failed to apply. outputdevice objects are updated after the changes have been
applied to the hardware and before the server side sends the applied event.
Mark the output as enabled or disabled.
Sets the mode for a given output by its mode size (width and height) and refresh rate.
Sets the transformation for a given output.
Sets the position for this output device. (x,y) describe the top-left corner
of the output in global space, whereby the origin (0,0) of the global space
has to be aligned with the top-left corner of the most left and in case this
does not define a single one the top output.
There may be no gaps or overlaps between outputs, i.e. the outputs are
stacked horizontally, vertically, or both on each other.
Sets the scaling factor for this output device.
Asks the server to apply property changes requested through this outputconfiguration
object to all outputs on the server side.
Sent after the server has successfully applied the changes.
.
Sent if the server rejects the changes or failed to apply them.
Sets the scaling factor for this output device.
Sending both scale and scalef is undefined.
Set color curves of output devices through RGB color ramps. Allows color
correction of output device from user space.
These are the raw values. A compositor might opt to adjust these values
internally, for example to shift color temperature at night.
Set the overscan value of this output device with a value in percent.
Describes when the compositor may employ variable refresh rate
Set what policy the compositor should employ regarding its use of
variable refresh rate.