Skip to content
  • Roman Gilg's avatar
    [colorcorrection] Night Color - blue light filter at nighttime · 82d28604
    Roman Gilg authored
    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
    82d28604