Redshift
Redshift adjusts the color temperature of your screen according to
your surroundings. This may help your eyes hurt less if you are
working in front of the screen at night. This program is inspired by
f.lux (please see
this post for the reason why I started
this project).
Mục lục bài viết
Download
Latest release is
Redshift 1.11 published
on 2016-01-02. Packages are available from most distributions. In
addition the following downloads are available:
- Source code: Available from
GitHub. - Windows: Experimental builds (it’s a command line utility; be aware of
windows limitations.
Available from GitHub.
Project page
The project is managed at GitHub
where issues and pull requests can also be posted. Please don’t use
the old bug tracker at the
Launchpad project page
anymore. Updates to the translations can still be contributed through
the
Launchpad translations
page.
Project description
Redshift adjusts the
color temperature
according to the position of the sun. A different color temperature is
set during night and daytime. During twilight and early morning, the
color temperature transitions smoothly from night to daytime
temperature to allow your eyes to slowly adapt. At night the color
temperature should be set to match the lamps in your room. This is
typically a low temperature at around 3000K-4000K (default is
3700K). During the day, the color temperature should match the light
from outside, typically around 5500K-6500K (default is 5500K). The
light has a higher temperature on an overcast day.
Technical details
On linux and similar systems the color temperature is set with an X
server extension. On the windows platform it is set using GDI. The
color temperature is changed by setting appropriate gamma ramps. If
you have configured your own gamma ramps they will be overwritten but
in that case you probably care too much about color accuracy to use
this program anyway. Your graphics driver and X server needs to either
support at least RANDR version 1.3 or the VidMode extension. Redshift
can also be applied to the Linux console by explicitly selecting the
DRM driver.
Redshift assumes that your screen will produce light at a color of
6500K when no color correction is applied by the program. Thus, 6500K
is the neutral temperature. Setting the color temperature to a value
higher than this results in more blue light, and setting a lower value
will result in more red light.
Configuration options
Redshift will continously update the color temperature at regular
intervals. One shot mode can be selected if you only want to do one
adjustment. The color adjustments done by Redshift can be temporarily
toggled on and off by sending it the USR1 signal:
$ pkill -USR1 redshift
The command line options are explained by running redshift -h
. All
options have reasonable defaults. You’ll need to specify your current
location only if redshift can’t obtain the location from an automatic
location provider. All color adjustment methods will be tried until
one that works is found unless you explicitly select one. The same
applies to location providers.
When you specify a location manually, note that a location south of
equator has a negative latitude and a location west of Greenwich (e.g
the Americas) has a negative longitude.
Beware that the location providers are not perfect. The GeoClue
method provides a location through the
GeoClue framework,
which may or may not work out-of-the-box. If it doesn’t work check
that your Geoclue installation is properly configured. The position
from Geoclue will currently not be updated regularly while Redshift is
running but this is planned for a future release.
Example (location is Copenhagen, Denmark):
$ redshift -l 55.7:12.6 -t 5700:3600 -g 0.8 -m randr -v
Configuration file
A configuration file can be created, but the documentation is a bit
sparse. You’ll have to create it manually and put it in
~/.config/redshift.conf
. The following is an example of a
configuration file:
; Global settings for redshift
[redshift]
; Set the day and night screen temperatures
temp-day=5700
temp-night=3500
; Enable/Disable a smooth transition between day and night
; 0 will cause a direct change from day to night screen temperature.
; 1 will gradually increase or decrease the screen temperature.
transition=1
; Set the screen brightness. Default is 1.0.
;brightness=0.9
; It is also possible to use different settings for day and night
; since version 1.8.
;brightness-day=0.7
;brightness-night=0.4
; Set the screen gamma (for all colors, or each color channel
; individually)
gamma=0.8
;gamma=0.8:0.7:0.8
; This can also be set individually for day and night since
; version 1.10.
;gamma-day=0.8:0.7:0.8
;gamma-night=0.6
; Set the location-provider: 'geoclue', 'geoclue2', 'manual'
; type 'redshift -l list' to see possible values.
; The location provider settings are in a different section.
location-provider=manual
; Set the adjustment-method: 'randr', 'vidmode'
; type 'redshift -m list' to see all possible values.
; 'randr' is the preferred method, 'vidmode' is an older API.
; but works in some cases when 'randr' does not.
; The adjustment method settings are in a different section.
adjustment-method=randr
; Configuration of the location-provider:
; type 'redshift -l PROVIDER:help' to see the settings.
; ex: 'redshift -l manual:help'
; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
; are negative numbers.
[manual]
lat=48.1
lon=11.6
; Configuration of the adjustment-method
; type 'redshift -m METHOD:help' to see the settings.
; ex: 'redshift -m randr:help'
; In this example, randr is configured to adjust screen 1.
; Note that the numbering starts from 0, so this is actually the
; second screen. If this option is not specified, Redshift will try
; to adjust _all_ screens.
[randr]
screen=1
Status icon
Start the program redshift-gtk
instead of redshift
, with the same
arguments as you would pass to redshift
. This will create an icon
for Redshift in the system tray. The icon will allow you to toggle
Redshift on and off. Thanks goes to the
Tango Desktop Project for the
icon. Redshift GTK requires at least Python 3.2 (since Redshift 1.9).
Note: Before version 1.8 redshift-gtk
was known as gtk-redshift
.
Related software
- Redshift Plasmoid:
Provides a KDE configuration interface for Redshift. - Twilight for Android:
Provides a similar application for Android (not open source). - f.lux:
A similar program for Windows/Mac and iPhone/iPad, and there is also
a Linux version (not open source).
Known bugs and limitations
- Redshift won’t affect the color of your mouse cursor when your
graphics driver is configured to use hardware cursors. Some graphics
drivers have an option to disable hardware cursors inxorg.conf
. - Certain video drivers do not support adjustable gamma ramps. In some
cases Redshift will fail with an error message, but other drivers
silently ignore adjustments to the gamma ramp. - Redshift has a brightness adjustment setting, but it does not
work the way most people might expect. In fact it is a fake
brightness adjustment obtained by manipulating the gamma ramps,
which means that it does not reduce the backlight of the
screen. Preferable only use it if your normal backlight adjustment
is too coarse-grained.