kwin/org.kde.kwin.ColorCorrect.xml

117 lines
4.4 KiB
XML
Raw Normal View History

[colorcorrection] Night Color - blue light filter at nighttime With Wayland KWin needs to provide certain services, which were provided before that by the Xserver. One of these is gamma correction, which includes the - by many people beloved - functionality to reduce the blue light at nighttime. This patch provides the KWin part of that. It is self contained, but in the end will work in tandem with a lib in Plasma Workspace and a KCM in Plasma Desktop, which can be used to configure Night Color. * Three modi: ** Automatic: The location and sun timings are determined automatically (location data updates will be provided by the workspace) ** Location: The sun timings are determined by fixed location data ** Timings: The sun timings are set manually by the user * Color temperature value changes are smoothly applied: ** Configuration changes, which lead to other current values are changed in a quick way over a few seconds ** Changes on sunrise and sunset are applied slowly over the course of few minutes till several hours depending on the configuration * The current color value is set immediately at startup or after suspend phases and VT switches. There is no flickering. * All configuration is done via a DBus interface, changed values are tested on correctness and applied atomically * Self contained mechanism, speaks directly to the hardware by setting the gamma ramps on the CRTC * Currently working on DRM backend, extensible to other platform backends in the future * The code is written in a way to make the classes later easily extendable to also provide normal color correction, as it's currently done by KGamma on X Test Plan: Manually with the workspace parts and added integration tests in KWin using the virtual backend. BUG:371494 Reviewers: #kwin, graesslin Subscribers: kwin, plasma-devel, #kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D5928
2017-12-11 12:43:12 +03:00
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<interface name="org.kde.kwin.ColorCorrect">
<method name="nightColorInfo">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QHash&lt;QString,QVariant&gt;"/>
<arg type="a{sv}" direction="out"/>
</method>
<method name="setNightColorConfig">
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QHash&lt;QString,QVariant&gt;"/>
<arg type="a{sv}" direction="in"/>
<arg type="b" direction="out"/>
</method>
<method name="nightColorAutoLocationUpdate">
<arg type="d" direction="in"/>
<arg type="d" direction="in"/>
</method>
<signal name="nightColorConfigChanged">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QHash&lt;QString,QVariant&gt;"/>
<arg type="a{sv}" direction="out"/>
</signal>
<!--
Creates an inhibition lock for Night Color.
You can use this method to temporarily disable Night Color feature.
After calling this method, the screen color temperature will be set
back to the neutral temperature (6500K).
This method returns a cookie that uniquely identifies the inhibition
request. You must pass the cookie to uninhibit() when you're done.
Note that the inhibition lock will be released automatically when
the service, which requested it, is unregistered.
A client is allowed to hold more than just one inhibition lock.
-->
<method name="inhibit">
<arg name="cookie" type="u" direction="out"/>
</method>
<!--
Releases an inhibition lock identified by the given cookie.
Note that the inhibition lock will be released automatically when
the service, which requested it, is unregistered.
-->
<method name="uninhibit">
<arg name="cookie" type="u" direction="in"/>
</method>
<!--
This property holds a value to indicate whether Night Color is inhibited.
-->
<property name="inhibited" type="b" access="read"/>
<!--
This property holds a value to indicate whether Night Color is enabled.
-->
<property name="enabled" type="b" access="read"/>
<!--
This property holds a value to indicate whether Night Color is running.
-->
<property name="running" type="b" access="read"/>
<!--
This property holds a value to indicate whether Night Color is available.
-->
<property name="available" type="b" access="read"/>
<!--
This property holds a value to indicate the current screen color temperature.
-->
<property name="currentTemperature" type="u" access="read"/>
<!--
This property holds a value to indicate the target screen color temperature.
-->
<property name="targetTemperature" type="u" access="read"/>
<!--
This property holds a value to indicate the operating mode.
Valid modes: 0 - automatic, 1 - location, 2 - timings, 3 - constant.
-->
<property name="mode" type="u" access="read"/>
<!--
This property holds a Unix timestamp that specifies when the previous color
temperature transition had started. Note that when Night Color operates in
the constant mode, this property holds a value of 0.
-->
<property name="previousTransitionDateTime" type="t" access="read"/>
<!--
This property holds a value that specifies the duration of the previous color
temperature transition, in milliseconds. Note that when Night Color operates
in the constant mode, this property holds a value of 0.
-->
<property name="previousTransitionDuration" type="u" access="read"/>
<!--
This property holds a Unix timestamp that specifies when the next scheduled
color temperature transition will start. Note that when Night Color operates
in the constant mode, this property holds a value of 0.
-->
<property name="scheduledTransitionDateTime" type="t" access="read"/>
<!--
This property holds a value that specifies the duration of next scheduled
color transition, in milliseconds. Note that when Night Color operates in
the constant mode, this property holds a value of 0.
-->
<property name="scheduledTransitionDuration" type="u" access="read"/>
[colorcorrection] Night Color - blue light filter at nighttime With Wayland KWin needs to provide certain services, which were provided before that by the Xserver. One of these is gamma correction, which includes the - by many people beloved - functionality to reduce the blue light at nighttime. This patch provides the KWin part of that. It is self contained, but in the end will work in tandem with a lib in Plasma Workspace and a KCM in Plasma Desktop, which can be used to configure Night Color. * Three modi: ** Automatic: The location and sun timings are determined automatically (location data updates will be provided by the workspace) ** Location: The sun timings are determined by fixed location data ** Timings: The sun timings are set manually by the user * Color temperature value changes are smoothly applied: ** Configuration changes, which lead to other current values are changed in a quick way over a few seconds ** Changes on sunrise and sunset are applied slowly over the course of few minutes till several hours depending on the configuration * The current color value is set immediately at startup or after suspend phases and VT switches. There is no flickering. * All configuration is done via a DBus interface, changed values are tested on correctness and applied atomically * Self contained mechanism, speaks directly to the hardware by setting the gamma ramps on the CRTC * Currently working on DRM backend, extensible to other platform backends in the future * The code is written in a way to make the classes later easily extendable to also provide normal color correction, as it's currently done by KGamma on X Test Plan: Manually with the workspace parts and added integration tests in KWin using the virtual backend. BUG:371494 Reviewers: #kwin, graesslin Subscribers: kwin, plasma-devel, #kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D5928
2017-12-11 12:43:12 +03:00
</interface>
</node>