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).

Download

Latest release is Redshift 1.9 published on 2014-04-06. Packages are available from most distributions. In addition the following downloads are available:

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.

Redshift running in one-shot mode

Redshift running in one-shot mode (right half shows a preview of the redness effect)

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.

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 vidmode -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 (thanks to kenden):

; 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

; Set the location-provider: 'geoclue', 'gnome-clock', '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'
[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.
[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.

Redshift status icon

Redshift status icon

Related software

  • Redshift Plasmoid for KDE provides a graphical configuration interface for Redshift.
  • Twilight for Android provides a similar application for Android (not open source).
  • f.lux is 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 cursor when your graphics driver is configured to use hardware cursors. Some graphics drivers have an option to disable hardware cursors in xorg.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 kind of fake brightness adjustment obtained by manipulating the gamma ramps, which means that it does not reduce the backlight of the screen.

Comments, suggestions, patches or donations will be greatly appreciated.

  • http://jonls.dk/ Jon Lund Steffensen

    Check out the Twilight app (https://play.google.com/store/apps/details?id=com.urbandroid.lux ), I think it’s great.

  • Guest

    Hi! I’m using 1.9 on Ubuntu but I can’t run redshift-gtk. I get this error

    Traceback (most recent call last):
    File “/usr/local/bin/redshift-gtk”, line 26, in
    from redshift_gtk.statusicon import run
    ImportError: No module named ‘redshift_gtk’

    I’m using Ubuntu 14.04

  • Mike

    Thanks so much for making this! F.lux works really well but it creeps me out and I suspect it’s spyware. (It even says on their website that it reads potentially all of your browser’s cookies and sells that to ’3rd parties’. The user willingly gives it admin privileges to do so too.)