Warning, /libraries/plasma-wayland-protocols/src/protocols/output-management.xml is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <protocol name="outputmanagement">
0003   <copyright><![CDATA[
0004         SPDX-FileCopyrightText: 2008-2011 Kristian Høgsberg
0005         SPDX-FileCopyrightText: 2010-2011 Intel Corporation
0006         SPDX-FileCopyrightText: 2012-2013 Collabora, Ltd.
0007         SPDX-FileCopyrightText: 2015 Sebastian Kügler <sebas@kde.org>
0008 
0009         SPDX-License-Identifier: MIT-CMU
0010         ]]></copyright>
0011 
0012 <interface name="org_kde_kwin_outputmanagement" version="4">
0013     <description summary="configuration of server outputs through clients">
0014     This interface enables clients to set properties of output devices for screen
0015     configuration purposes via the server. To this end output devices are referenced
0016     by global org_kde_kwin_outputdevice objects.
0017 
0018     outputmanagement (wl_global)
0019     --------------------------
0020     request:
0021     * create_configuration -> outputconfiguration (wl_resource)
0022 
0023     outputconfiguration (wl_resource)
0024     --------------------------
0025     requests:
0026     * enable(outputdevice, bool)
0027     * mode(outputdevice, mode_id)
0028     * transformation(outputdevice, flag)
0029     * position(outputdevice, x, y)
0030     * apply
0031 
0032     events:
0033     * applied
0034     * failed
0035 
0036     The server registers one outputmanagement object as a global object. In order
0037     to configure outputs a client requests create_configuration, which provides a
0038     resource referencing an outputconfiguration for one-time configuration. That
0039     way the server knows which requests belong together and can group them by that.
0040 
0041     On the outputconfiguration object the client calls for each output whether the
0042     output should be enabled, which mode should be set (by referencing the mode from
0043     the list of announced modes) and the output's global position. Once all outputs
0044     are configured that way, the client calls apply.
0045     At that point and not earlier the server should try to apply the configuration.
0046     If this succeeds the server emits the applied signal, otherwise the failed
0047     signal, such that the configuring client is noticed about the success of its
0048     configuration request.
0049 
0050     Through this design the interface enables atomic output configuration changes if
0051     internally supported by the server.
0052 
0053     </description>
0054     <request name="create_configuration">
0055         <description summary="provide outputconfiguration object for configuring outputs">
0056             Request an outputconfiguration object through which the client can configure
0057             output devices.
0058         </description>
0059         <arg name="id" type="new_id" interface="org_kde_kwin_outputconfiguration"/>
0060     </request>
0061 
0062 </interface>
0063 
0064 <interface name="org_kde_kwin_outputconfiguration" version="4">
0065     <description summary="configure single output devices">
0066         outputconfiguration is a client-specific resource that can be used to ask
0067         the server to apply changes to available output devices.
0068 
0069         The client receives a list of output devices from the registry. When it wants
0070         to apply new settings, it creates a configuration object from the
0071         outputmanagement global, writes changes through this object's enable, scale,
0072         transform and mode calls. It then asks the server to apply these settings in
0073         an atomic fashion, for example through Linux' DRM interface.
0074 
0075         The server signals back whether the new settings have applied successfully
0076         or failed to apply. outputdevice objects are updated after the changes have been
0077         applied to the hardware and before the server side sends the applied event.
0078     </description>
0079 
0080     <request name="enable">
0081         <description summary="enable or disable an output">
0082             Mark the output as enabled or disabled.
0083         </description>
0084         <arg name="outputdevice" type="object" interface="org_kde_kwin_outputdevice" summary="outputdevice to be en- or disabled"/>
0085         <arg name="enable" type="int" summary="1 to enable or 0 to disable this output"/>
0086     </request>
0087 
0088     <request name="mode">
0089         <description summary="switch outputdevice to mode">
0090             Sets the mode for a given output by its mode size (width and height) and refresh rate.
0091         </description>
0092         <arg name="outputdevice" type="object" interface="org_kde_kwin_outputdevice" summary="outputdevice this mode change applies to"/>
0093         <arg name="mode_id" type="int" summary="aspired mode's id"/>
0094     </request>
0095 
0096     <request name="transform">
0097         <description summary="transform outputdevice">
0098             Sets the transformation for a given output.
0099         </description>
0100         <arg name="outputdevice" type="object" interface="org_kde_kwin_outputdevice" summary="outputdevice this transformation change applies to"/>
0101         <arg name="transform" type="int" summary="transform enum"/>
0102     </request>
0103 
0104     <request name="position">
0105         <description summary="position output in global space">
0106             Sets the position for this output device. (x,y) describe the top-left corner
0107             of the output in global space, whereby the origin (0,0) of the global space
0108             has to be aligned with the top-left corner of the most left and in case this
0109             does not define a single one the top output.
0110 
0111             There may be no gaps or overlaps between outputs, i.e. the outputs are
0112             stacked horizontally, vertically, or both on each other.
0113         </description>
0114         <arg name="outputdevice" type="object" interface="org_kde_kwin_outputdevice" summary="outputdevice this position applies to"/>
0115         <arg name="x" type="int" summary="position on the x-axis"/>
0116         <arg name="y" type="int" summary="position on the y-axis"/>
0117     </request>
0118 
0119     <request name="scale">
0120         <description summary="set scaling factor of this output">
0121             Sets the scaling factor for this output device.
0122         </description>
0123         <arg name="outputdevice" type="object" interface="org_kde_kwin_outputdevice" summary="outputdevice this mode change applies to"/>
0124         <arg name="scale" type="int" summary="scaling factor"/>
0125     </request>
0126 
0127     <request name="apply">
0128         <description summary="apply configuration changes to all output devices">
0129             Asks the server to apply property changes requested through this outputconfiguration
0130             object to all outputs on the server side.
0131         </description>
0132     </request>
0133 
0134     <event name="applied">
0135         <description summary="configuration changes have been applied">
0136             Sent after the server has successfully applied the changes.
0137             .
0138         </description>
0139     </event>
0140 
0141     <event name="failed">
0142         <description summary="configuration changes failed to apply">
0143             Sent if the server rejects the changes or failed to apply them.
0144         </description>
0145     </event>
0146 
0147     <request name="scalef" since="2">
0148         <description summary="set scaling factor of this output">
0149             Sets the scaling factor for this output device.
0150             Sending both scale and scalef is undefined.
0151         </description>
0152         <arg name="outputdevice" type="object" interface="org_kde_kwin_outputdevice" summary="outputdevice this mode change applies to"/>
0153         <arg name="scale" type="fixed" summary="scaling factor"/>
0154     </request>
0155 
0156     <request name="colorcurves" since="2">
0157         <description summary="set output color curves">
0158             Set color curves of output devices through RGB color ramps. Allows color
0159             correction of output device from user space.
0160 
0161             These are the raw values. A compositor might opt to adjust these values
0162             internally, for example to shift color temperature at night.
0163         </description>
0164         <arg name="outputdevice" type="object" interface="org_kde_kwin_outputdevice" summary="outputdevice curves apply to"/>
0165         <arg name="red" type="array" summary="red color ramp"/>
0166         <arg name="green" type="array" summary="green color ramp"/>
0167         <arg name="blue" type="array" summary="blue color ramp"/>
0168     </request>
0169 
0170     <request name="destroy" type="destructor" since="2">
0171         <description summary="release the outputconfiguration object"/>
0172     </request>
0173 
0174     <request name="overscan" since="3">
0175         <description summary="set overscan value">
0176             Set the overscan value of this output device with a value in percent.
0177         </description>
0178         <arg name="outputdevice" type="object" interface="org_kde_kwin_outputdevice" summary="outputdevice overscan applies to"/>
0179         <arg name="overscan" type="uint" summary="overscan value"/>
0180     </request>
0181 
0182     <enum name="vrr_policy" since="4">
0183         <description summary="describes vrr policy">
0184             Describes when the compositor may employ variable refresh rate
0185         </description>
0186         <entry name="never" value="0"/>
0187         <entry name="always" value="1"/>
0188         <entry name="automatic" value="2"/>
0189     </enum>
0190 
0191     <request name="set_vrr_policy" since="4">
0192         <description summary="set the VRR policy">
0193             Set what policy the compositor should employ regarding its use of
0194             variable refresh rate.
0195         </description>
0196         <arg name="outputdevice" type="object" interface="org_kde_kwin_outputdevice" summary="outputdevice this VRR policy applies to"/>
0197         <arg name="policy" type="uint" enum="vrr_policy" summary="the vrr policy to apply"/>
0198     </request>
0199 
0200 </interface>
0201 
0202 </protocol>