D5928: Introducing Night Color - KWin's native blue light filter at nighttime
Roman Gilg
noreply at phabricator.kde.org
Sat May 20 21:09:37 UTC 2017
subdiff created this revision.
subdiff added projects: KWin, Plasma on Wayland.
Restricted Application added subscribers: kwin, plasma-devel.
REVISION SUMMARY
Introduction
------------
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. Diffs for these parts will be posted this weekend.
Features:
---------
- 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
This patch solves the redshift part of https://phabricator.kde.org/T4465 and lays the foundations to solve the task in total in the near future.
TEST PLAN
Manually with the workspace parts and added integration tests in KWin using the virtual backend.
REPOSITORY
R108 KWin
REVISION DETAIL
https://phabricator.kde.org/D5928
AFFECTED FILES
CMakeLists.txt
autotests/integration/CMakeLists.txt
autotests/integration/colorcorrect_nightcolor_test.cpp
colorcorrection/colorcorrectdbusinterface.cpp
colorcorrection/colorcorrectdbusinterface.h
colorcorrection/constants.h
colorcorrection/logging.cpp
colorcorrection/logging.h
colorcorrection/nightcolor.cpp
colorcorrection/nightcolor.h
colorcorrection/suncalc.cpp
colorcorrection/suncalc.h
org.kde.kwin.ColorCorrect.xml
platform.cpp
platform.h
plugins/platforms/drm/drm_backend.cpp
plugins/platforms/drm/drm_backend.h
plugins/platforms/drm/drm_object_crtc.cpp
plugins/platforms/drm/drm_object_crtc.h
plugins/platforms/virtual/virtual_backend.cpp
plugins/platforms/virtual/virtual_backend.h
To: subdiff, #kwin
Cc: plasma-devel, kwin, ZrenBot, spstarr, progwolff, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, eliasp, sebas, apol, hein, lukas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170520/e244674f/attachment.html>
More information about the Plasma-devel
mailing list