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


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.

The information window from the Redshift GTK user interface with an overlay showing an example of the redness effect.
The information window from the Redshift GTK user interface with an overlay showing an example 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
; Set the day and night screen temperatures

; 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

; Set the screen brightness. Default is 1.0
; It is also possible to use different settings for day and night since version 1.8.
; Set the screen gamma (for all colors, or each color channel individually)

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

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

; Configuration of the location-provider:
; type 'redshift -l PROVIDER:help' to see the settings
; ex: 'redshift -l manual:help'

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

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.

  • justin

    hi geoclue seems to be picking up my wrong location its picking up LA california but i’m in New, Jersey USA pretty big difference. I tried to manually set the location but it seems this geoclue is over riding that and still wants to say I live in califonia (never even been there) which would alter the times of color temp to the wrong times for my location how do i fix this?

  • Justin

    i went to the hostip website and changed my wrong location to my city now redshift is working fine. i just wished i could keep my day temp to normal default temp and change at night.

  • Jon Lund Steffensen

    You can use the command line switch -t to set the temperature or you can set up a config file as described above. If you set the daytime temperature to 6500 you will get the default temperature.

  • justin

    i tried all that im a newbee to linux and i did use the command line to switch it but it seemed on reboot it changed back to defaults.
    im not sure how to make the configure file honestly ill keep trying. i dont mind the default settings too much now being its a little mellower at day
    it makes it easier to adjust at night. just wasnt used to it from using f.lux the default setings are a little different.

  • justin

    created a config file to manually choose the location and that seemed to work (do i always need an internet connection even for this option for redshift to work)
    i changed my temp settings in the config file but redshift doesn’t seem to be picking them up.