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>