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