summaryrefslogtreecommitdiff
path: root/src/org.gnome.Mutter.DisplayConfig.xml
diff options
context:
space:
mode:
Diffstat (limited to 'src/org.gnome.Mutter.DisplayConfig.xml')
-rw-r--r--src/org.gnome.Mutter.DisplayConfig.xml473
1 files changed, 0 insertions, 473 deletions
diff --git a/src/org.gnome.Mutter.DisplayConfig.xml b/src/org.gnome.Mutter.DisplayConfig.xml
deleted file mode 100644
index 7522652dc..000000000
--- a/src/org.gnome.Mutter.DisplayConfig.xml
+++ /dev/null
@@ -1,473 +0,0 @@
-<!DOCTYPE node PUBLIC
-'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
-'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
-<node>
- <!--
- org.gnome.Mutter.DisplayConfig:
- @short_description: display configuration interface
-
- This interface is used by mutter and gnome-settings-daemon
- to apply multiple monitor configuration.
- -->
-
- <interface name="org.gnome.Mutter.DisplayConfig">
-
- <!--
- GetResources:
- @serial: configuration serial
- @crtcs: available CRTCs
- @outputs: available outputs
- @modes: available modes
- @max_screen_width:
- @max_screen_height:
-
- Retrieves the current layout of the hardware.
-
- @serial is an unique identifier representing the current state
- of the screen. It must be passed back to ApplyConfiguration()
- and will be increased for every configuration change (so that
- mutter can detect that the new configuration is based on old
- state).
-
- A CRTC (CRT controller) is a logical monitor, ie a portion
- of the compositor coordinate space. It might correspond
- to multiple monitors, when in clone mode, but not that
- it is possible to implement clone mode also by setting different
- CRTCs to the same coordinates.
-
- The number of CRTCs represent the maximum number of monitors
- that can be set to expand and it is a HW constraint; if more
- monitors are connected, then necessarily some will clone. This
- is complementary to the concept of the encoder (not exposed in
- the API), which groups outputs that necessarily will show the
- same image (again a HW constraint).
-
- A CRTC is represented by a DBus structure with the following
- layout:
- * u ID: the ID in the API of this CRTC
- * x winsys_id: the low-level ID of this CRTC (which might
- be a XID, a KMS handle or something entirely
- different)
- * i x, y, width, height: the geometry of this CRTC
- (might be invalid if the CRTC is not in
- use)
- * i current_mode: the current mode of the CRTC, or -1 if this
- CRTC is not used
- Note: the size of the mode will always correspond
- to the width and height of the CRTC
- * u current_transform: the current transform (espressed according
- to the wayland protocol)
- * au transforms: all possible transforms
- * a{sv} properties: other high-level properties that affect this
- CRTC; they are not necessarily reflected in
- the hardware.
- No property is specified in this version of the API.
-
- Note: all geometry information refers to the untransformed
- display.
-
- An output represents a physical screen, connected somewhere to
- the computer. Floating connectors are not exposed in the API.
- An output is a DBus struct with the following fields:
- * u ID: the ID in the API
- * x winsys_id: the low-level ID of this output (XID or KMS handle)
- * i current_crtc: the CRTC that is currently driving this output,
- or -1 if the output is disabled
- * au possible_crtcs: all CRTCs that can control this output
- * s name: the name of the connector to which the output is attached
- (like VGA1 or HDMI)
- * au modes: valid modes for this output
- * au clones: valid clones for this output, ie other outputs that
- can be assigned the same CRTC as this one; if you
- want to mirror two outputs that don't have each other
- in the clone list, you must configure two different
- CRTCs for the same geometry
- * a{sv} properties: other high-level properties that affect this
- output; they are not necessarily reflected in
- the hardware.
- Known properties:
- - "vendor" (s): (readonly) the human readable name
- of the manufacturer
- - "product" (s): (readonly) the human readable name
- of the display model
- - "serial" (s): (readonly) the serial number of this
- particular hardware part
- - "display-name" (s): (readonly) a human readable name
- of this output, to be shown in the UI
- - "backlight" (i): (readonly, use the specific interface)
- the backlight value as a percentage
- (-1 if not supported)
- - "primary" (b): whether this output is primary
- or not
- - "presentation" (b): whether this output is
- for presentation only
- Note: properties might be ignored if not consistently
- applied to all outputs in the same clone group. In
- general, it's expected that presentation or primary
- outputs will not be cloned.
-
- A mode represents a set of parameters that are applied to
- each output, such as resolution and refresh rate. It is a separate
- object so that it can be referenced by CRTCs and outputs.
- Multiple outputs in the same CRTCs must all have the same mode.
- A mode is exposed as:
- * u ID: the ID in the API
- * x winsys_id: the low-level ID of this mode
- * u width, height: the resolution
- * d frequency: refresh rate
- * u flags: mode flags as defined in xf86drmMode.h and randr.h
-
- Output and modes are read-only objects (except for output properties),
- they can change only in accordance to HW changes (such as hotplugging
- a monitor), while CRTCs can be changed with ApplyConfiguration().
-
- XXX: actually, if you insist enough, you can add new modes
- through xrandr command line or the KMS API, overriding what the
- kernel driver and the EDID say.
- Usually, it only matters with old cards with broken drivers, or
- old monitors with broken EDIDs, but it happens more often with
- projectors (if for example the kernel driver doesn't add the
- 640x480 - 800x600 - 1024x768 default modes). Probably something
- that we need to handle in mutter anyway.
- -->
- <method name="GetResources">
- <arg name="serial" direction="out" type="u" />
- <arg name="crtcs" direction="out" type="a(uxiiiiiuaua{sv})" />
- <arg name="outputs" direction="out" type="a(uxiausauaua{sv})" />
- <arg name="modes" direction="out" type="a(uxuudu)" />
- <arg name="max_screen_width" direction="out" type="i" />
- <arg name="max_screen_height" direction="out" type="i" />
- </method>
-
- <!--
- ApplyConfiguration:
- @serial: configuration serial
- @persistent: whether this configuration should be saved on disk
- @crtcs: new data for CRTCs
- @outputs: new data for outputs
-
- Applies the requested configuration changes.
-
- @serial must match the serial from the last GetResources() call,
- or org.freedesktop.DBus.AccessDenied will be generated.
-
- If @persistent is true, mutter will attempt to replicate this
- configuration the next time this HW layout appears.
-
- @crtcs represents the new logical configuration, as a list
- of structures containing:
- - u ID: the API ID from the corresponding GetResources() call
- - i new_mode: the API ID of the new mode to configure the CRTC
- with, or -1 if the CRTC should be disabled
- - i x, y: the new coordinates of the top left corner
- the geometry will be completed with the size information
- from @new_mode
- - u transform: the desired transform
- - au outputs: the API ID of outputs that should be assigned to
- this CRTC
- - a{sv} properties: properties whose value should be changed
-
- Note: CRTCs not referenced in the array will be disabled.
-
- @outputs represent the output property changes as:
- - u ID: the API ID of the output to change
- - a{sv} properties: properties whose value should be changed
-
- Note: both for CRTCs and outputs, properties not included in
- the dictionary will not be changed.
-
- Note: unrecognized properties will have no effect, but if the
- configuration change succeeds the property will be reported
- by the next GetResources() call, and if @persistent is true,
- it will also be saved to disk.
-
- If the configuration is invalid according to the previous
- GetResources() call, for example because a CRTC references
- an output it cannot drive, or not all outputs support the
- chosen mode, the error org.freedesktop.DBus.InvalidArgs will
- be generated.
-
- If the configuration cannot be applied for any other reason
- (eg. the screen size would exceed texture limits), the error
- org.freedesktop.DBus.Error.LimitsExceeded will be generated.
- -->
- <method name="ApplyConfiguration">
- <arg name="serial" direction="in" type="u" />
- <arg name="persistent" direction="in" type="b" />
- <arg name="crtcs" direction="in" type="a(uiiiuaua{sv})" />
- <arg name="outputs" direction="in" type="a(ua{sv})" />
- </method>
-
- <!--
- ChangeBacklight:
- @serial: configuration serial
- @output: the API id of the output
- @value: the new backlight value
-
- Changes the backlight of @output to @value, which is
- expressed as a percentage and rounded to the HW limits.
-
- Returns the new value after rounding.
- -->
- <method name="ChangeBacklight">
- <arg name="serial" direction="in" type="u" />
- <arg name="output" direction="in" type="u" />
- <arg name="value" direction="in" type="i" />
- <arg name="new_value" direction="out" type="i" />
- </method>
-
- <!--
- GetCrtcGamma:
- @serial: configuration serial
- @crtc: API id of the crtc
- @red: red gamma ramp
- @green: green gamma ramp
- @blue: blue gamma ramp
-
- Requests the current gamma ramps of @crtc.
- -->
- <method name="GetCrtcGamma">
- <arg name="serial" direction="in" type="u" />
- <arg name="crtc" direction="in" type="u" />
- <arg name="red" direction="out" type="aq" />
- <arg name="green" direction="out" type="aq" />
- <arg name="blue" direction="out" type="aq" />
- </method>
-
- <!--
- SetCrtcGamma:
- @serial: configuration serial
- @crtc: API id of the crtc
- @red: red gamma ramp
- @green: green gamma ramp
- @blue: blue gamma ramp
-
- Changes the gamma ramps of @crtc.
- -->
- <method name="SetCrtcGamma">
- <arg name="serial" direction="in" type="u" />
- <arg name="crtc" direction="in" type="u" />
- <arg name="red" direction="in" type="aq" />
- <arg name="green" direction="in" type="aq" />
- <arg name="blue" direction="in" type="aq" />
- </method>
-
- <!--
- PowerSaveMode:
-
- Contains the current power saving mode for the screen, and
- allows changing it.
-
- Possible values:
- - 0: on
- - 1: standby
- - 2: suspend
- - 3: off
- - -1: unknown (unsupported)
-
- A client should not attempt to change the powersave mode
- from -1 (unknown) to any other value, and viceversa.
- Note that the actual effects of the different values
- depend on the hardware and the kernel driver in use, and
- it's perfectly possible that all values different than on
- have the same effect.
- Also, setting the PowerSaveMode to 3 (off) may or may
- not have the same effect as disabling all outputs by
- setting no CRTC on them with ApplyConfiguration(), and
- may or may not cause a configuration change.
-
- Also note that this property might become out of date
- if changed through different means (for example using the
- XRandR interface directly).
- -->
- <property name="PowerSaveMode" type="i" access="readwrite" />
-
- <!--
- PanelOrientationManaged:
-
- Whether the built-in panel orientation is automatically managed
- by mutter.
- -->
- <property name="PanelOrientationManaged" type="b" access="read" />
-
- <!--
- MonitorsChanged:
-
- The signal is emitted every time the screen configuration
- changes.
- The client should then call GetResources() to read the new layout.
- -->
- <signal name="MonitorsChanged" />
-
- <!--
- GetCurrentState:
- @serial: configuration serial
- @monitors: available monitors
- @logical_monitors: current logical monitor configuration
- @properties: display configuration properties
-
- @monitors represent connected physical monitors
-
- * s connector: connector name (e.g. HDMI-1, DP-1, etc)
- * s vendor: vendor name
- * s product: product name
- * s serial: product serial
- * a(siiddada{sv}) modes: available modes
- * s id: mode ID
- * i width: width in physical pixels
- * i height: height in physical pixels
- * d refresh rate: refresh rate
- * d preferred scale: scale preferred as per calculations
- * ad supported scales: scales supported by this mode
- * a{sv} properties: optional properties, including:
- - "is-current" (b): the mode is currently active mode
- - "is-preferred" (b): the mode is the preferred mode
- - "is-interlaced" (b): the mode is an interlaced mode
- * a{sv} properties: optional properties, including:
- - "width-mm" (i): physical width of monitor in millimeters
- - "height-mm" (i): physical height of monitor in millimeters
- - "is-underscanning" (b): whether underscanning is enabled
- (absence of this means underscanning
- not being supported)
- - "max-screen-size" (ii): the maximum size a screen may have
- (absence of this means unlimited screen
- size)
- - "is-builtin" (b): whether the monitor is built in, e.g. a
- laptop panel (absence of this means it is
- not built in)
- - "display-name" (s): a human readable display name of the monitor
-
- Possible mode flags:
- 1 : preferred mode
- 2 : current mode
-
-
- @logical_monitors represent current logical monitor configuration
-
- * i x: x position
- * i y: y position
- * d scale: scale
- * u transform: transform (see below)
- * b primary: true if this is the primary logical monitor
- * a(sss) monitors: monitors displaying this logical monitor
- * connector: name of the connector (e.g. DP-1, eDP-1 etc)
- * vendor: vendor name
- * product: product name
- * serial: product serial
- * a{sv} properties: possibly other properties
-
- Posisble transform values:
- 0: normal
- 1: 90°
- 2: 180°
- 3: 270°
- 4: flipped
- 5: 90° flipped
- 6: 180° flipped
- 7: 270° flipped
-
-
- @layout_mode current layout mode represents the way logical monitors
- are laid out on the screen. Possible modes include:
-
- 1 : physical
- 2 : logical
-
- With physical layout mode, each logical monitor has the same dimensions
- as the monitor modes of the associated monitors assigned to it, no
- matter what scale is in use.
-
- With logical mode, the dimension of a logical monitor is the dimension
- of the monitor mode, divided by the logical monitor scale.
-
-
- Possible @properties are:
-
- * "layout-mode" (u): Represents in what way logical monitors are laid
- out on the screen. The layout mode can be either
- of the ones listed below. Absence of this property
- means the layout mode cannot be changed, and that
- "logical" mode is assumed to be used.
- * 1 : logical - the dimension of a logical monitor is derived from
- the monitor modes associated with it, then scaled
- using the logical monitor scale.
- * 2 : physical - the dimension of a logical monitor is derived from
- the monitor modes associated with it.
- * "supports-changing-layout-mode" (b): True if the layout mode can be
- changed. Absence of this means the
- layout mode cannot be changed.
- * "global-scale-required" (b): True if all the logical monitors must
- always use the same scale. Absence of
- this means logical monitor scales can
- differ.
- * "legacy-ui-scaling-factor" (i): The legacy scaling factor traditionally
- used to scale X11 clients (commonly
- communicated via the
- Gdk/WindowScalingFactor XSetting entry).
- -->
- <method name="GetCurrentState">
- <arg name="serial" direction="out" type="u" />
- <arg name="monitors" direction="out" type="a((ssss)a(siiddada{sv})a{sv})" />
- <arg name="logical_monitors" direction="out" type="a(iiduba(ssss)a{sv})" />
- <arg name="properties" direction="out" type="a{sv}" />
- </method>
-
- <!--
- ApplyMonitorsConfig:
- @serial: configuration serial
- @method: configuration method
- @logical_monitors: monitors configuration
- @properties: properties
-
- @method represents the way the configuration should be handled.
-
- Possible methods:
- 0: verify
- 1: temporary
- 2: persistent
-
- @logical_monitors consists of a list of logical monitor configurations.
- Each logical monitor configuration consists of:
-
- * i: layout x position
- * i: layout y position
- * d: scale
- * u: transform (see GetCurrentState)
- * b primary: true if this is the primary logical monitor
- * a(ssa{sv}): a list of monitors, each consisting of:
- * s: connector
- * s: monitor mode ID
- * a{sv}: monitor properties, including:
- - "enable_underscanning" (b): enable monitor underscanning;
- may only be set when underscanning
- is supported (see GetCurrentState).
-
- @properties may effect the global monitor configuration state. Possible
- properties are:
-
- * "layout-mode" (u): layout mode the passed configuration is in; may
- only be set when changing the layout mode is
- supported (see GetCurrentState).
- -->
- <method name="ApplyMonitorsConfig">
- <arg name="serial" direction="in" type="u" />
- <arg name="method" direction="in" type="u" />
- <arg name="logical_monitors" direction="in" type="a(iiduba(ssa{sv}))" />
- <arg name="properties" direction="in" type="a{sv}" />
- </method>
-
- <!--
- SetOutputCTM:
- @serial: configuration serial
- @output: API id of the output
- @ctm: 3x3 matrix in fixed-point sign-magnitude S31.32
-
- Changes the color transform matrix of @output
- -->
- <method name="SetOutputCTM">
- <arg name="serial" direction="in" type="u" />
- <arg name="output" direction="in" type="u" />
- <arg name="ctm" direction="in" type="(ttttttttt)" />
- </method>
- </interface>
-</node>