[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<QString,QVariant>"/>
|
|
|
|
<arg type="a{sv}" direction="out"/>
|
|
|
|
</method>
|
|
|
|
<method name="setNightColorConfig">
|
|
|
|
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QHash<QString,QVariant>"/>
|
|
|
|
<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<QString,QVariant>"/>
|
|
|
|
<arg type="a{sv}" direction="out"/>
|
|
|
|
</signal>
|
2020-01-07 18:09:55 +03:00
|
|
|
|
|
|
|
<!--
|
|
|
|
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"/>
|
[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>
|