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.

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

  • Christian Vincenot

    P.S.: I just checked and f.lux does not behave the same way and keeps the screen brighter.

  • Patrick

    Hey, just a suggestion- it’d be cool if there was an indication on the gtk-redshift applet as to whether the state is toggled on or off. During the day, you can’t tell because the screen will be normal either way, so if you mistakenly leave it toggled off the screen won’t go red.

    It could be as simple as a check mark next to ‘Toggle’, or as cool as the bulb being white for off and red for on.

  • Patrick

    Oh, and I forgot to add, this is a great project. I love it :)

  • Eronarn

    Since I didn’t spot anywhere else to report issues:

    On my machine, hitting Toggle causes it to reset and then immediately fade out from, and then fade back to, a reddish color (it’s 11:30 AM right now, I’m not sure if this counts as ‘early morning’ for the program’s purposes).

  • http://www.svlibertalia.com max

    Hello, I think it would be super pleasing if the redshift icon displayed the terminal output data upon mouseover (gamma, solar elevation, etc.)

    Thanks for your attention!

  • Dzmitry

    It’s not quite clear still whether it is needed to specify -l option?
    Will the ‘location provider’ be selected automatically or do I always have to run something like `redshift -l gnome-clock` ?

    You could have mentioned that somewhere and maybe even mark the provider that would be chosen when running `redshift -l list` like:

    Usage: redshift [OPTIONS...]
    ...
    Default values:

    Daytime temperature: 5500K
    Night temperature: 3700K
    Location provider: gnome-clock

    and

    Available location providers:
    gnome-clock (default)
    manual

    (do you think there is a need for ‘manual provider’ considering you can just use -l LAT:LON?)

    Is there a way to display current location ‘as detected by redshift’? This might be useful for ‘debugging’ purposes. And maybe later when for example you will implement geolocation support (for netbook users). ;)

    redshift should detect if another copy is already running (currently it runs another instance ‘on top’). And if so could just print corresponding message and current details (a-la `redshift -v -o`) and then exit.
    Tray icon hint could display those details too.

  • Jon Lund Steffensen

    @Christian Vincenot and others: Try a different color temperature if you feel it’s too warm. You can specify the temperature with -t. You can test different color temperatures with -o until you find a value you are satisfied with.

    @Dzmitry: Thank you for your questions. If you explicitly request a color adjustment method the program will try to use that one and will fail if it doesn’t work. If you don’t specify an adjustment method all of them will be tried until one that works is found. For that reason there’s no default adjustment method. The same applies to location providers. I have clarified the text above so this should be more clear now.

    -l LAT:LON is a shorthand for -l manual:lat=LAT:lon=LON so the manual provider is needed.

    You should be able to use -v for more verbose output including location as detected by redshift.

  • K. Hendrik

    Hi,
    i really love your programm, but it doesn’t change the color of the cursor.
    I’m, using 1.4 on ubuntu 10.04 64-Bit.
    Is this a known issue? Can i do anything about it besides changing the cursor to a darker one (the standard-cursor kind of blindes me at night).

  • Jon Lund Steffensen

    @K. Hendrik: Redshift can’t affect the color of your cursor if you’re using hardware cursors. You can switch to software cursors if it really bothers you (but you’ll probably have to mess with xorg.conf).

  • K. Hendrik

    @Jon Lund Steffensen: OK thank you for the tip, with the HWCursor disabled for my NVIDIA Geforce 310M the Color gets changed, but sadly otherwise the cursor is pretty unusable (flikering and garbelling the screen position where it should be).

  • http://sixgun.org Fab

    Are there any moves to get this into Fedora or any particular reason for not doing so? Are you looking for a packager? I would love to help getting this done…

  • Pingback: Eyes getting tired staring at your computer? Try a red screen! « Dolphinaura()

  • Miloš

    @Fab: I was thinking the same, so already packaged into an RPM couple of days ago, please feel free to test.

  • steve

    i downloaded this but when i clicked on the redshift.exe a cmd window pops up but for half a second and then dissapears….im on windows 7 ultimate…thanks

  • Jon Lund Steffensen

    @steve: Redshift is a command line utility. The windows version is highly experimental and there’s no graphical interface. If you’re not comfortable with that you should probably stick to f.lux for now.

  • Nikolay

    Err http://ppa.launchpad.net lucid/main Packages
    404 Not Found
    W: Failed to fetch http://ppa.launchpad.net/user/ppa-smplayer/ubuntu/dists/lucid/main/binary-i386/Packages.gz 404 Not Found

    E: Some index files failed to download, they have been ignored, or old ones used instead.

    And then I cannot start redshift:

    redshift: command not found
    gtk-redshift: command not found

  • Pingback: Redshift – help your eyes | TheSlon.com()

  • Pingback: RedShift Makes Your Screen Easier On The Eyes At Night | Lifehacker Australia()

  • http://deuified.blogspot.com/ konqueror7

    nice work! i just wonder why no RPMs are available?

    i’m on fedora 12, and just converted it with alien. works flawlessly!

    redshift-1.4.1-1.i386.rpm

  • Oliver

    Is there a way to make it adjust the temperature continuously, or does is simply have a DAY and NIGHT setting and switch between them at specific times? Love the program :)

  • fer

    @Oliver

    It does change gradually if you don’t set the -r option nor DAY:NIGHT after -t. Just set your latitude and longitude location this way:
    $ redshift -l xx.x:yy.y
    Where xx.x = latitude, yy.y = longitude (be aware any of it could be negative for your location)
    If you want to control how far red or blue becomes, add the -t option and the color temperature limits you want (try some K values). The whole thing will be something like:
    $ redshift -l xx.x:yy.y -t 5700:3600

  • phip

    I built from source and installed, redshift works but gtk-redshift says:

    Traceback (most recent call last):
    File "/usr/local/bin/gtk-redshift", line 22, in
    from gtk_redshift.statusicon import run
    ImportError: No module named gtk_redshift.statusicon

    Not sure what’s the matter. This is a wonderful project, thank you!

  • Jon Lund Steffensen

    @phip: Please see https://bugs.launchpad.net/redshift/+bug/594577 for an explanation.

  • Pingback: RedShift, ajusta el brillo de tu pantalla de acuerdo al horario (Linux)()

  • Gid

    This is the coolest little app I’ve come across in ages! BTW it has made it into main portage tree for gentoo, no overlays required.

  • Ciprian S.

    Hello, rpm’s for Mandriva will be released when the repositories are unlocked after the release of 2010.1.
    Here is the link : https://qa.mandriva.com/show_bug.cgi?id=59843

  • Jon Lund Steffensen

    @Gid, Ciprian S.: Thanks. Added the info above.

  • t4nn3d1n

    Awesome program. I’m very happy with it especially since being DoD I have to worry about night time training and acclimation.

    There are two things I’ve noticed beyond what I read in the comments:
    My IBM think laptop & NVidia Card Desktop do not shift in brightness (bright red is still bright)
    My Netbook does downshift the brightness with the redshift (no human input)
    Which leads to the question of is there a way to control a variant amount of screen brightness directly to xorg corresponding to the red shift?

  • Pingback: f.lux – Tool News | Nail Guns For Sale()

  • musonio

    Thanks. I’m using PCLinuxOS 2010 and it works great.

  • Pingback: Geekfault » Redshift, ne vous abimez plus les yeux la nuit()

  • http://frugalware.org/~devil505/blog/ Devil505

    I’ve packaged it for Frugalware Linux :)
    http://frugalware.org/packages/88806

  • Pingback: Episode 17 – Tooltime für Windows » Robert, Woche, Susanne, Blaster, Ragdoll, Android » macpcnux.net()

  • Eric

    As another poster has mentioned, it seems like xflux sets the display to a different actual color temperature at what it calls 3400K than redshift does. That is, when redshift says my display is at 3400K, it’s actually much warmer/redder than when xflux says it has set my display to 3400K — the warmth of 3400K according to xflux is closer to 4600K according to redshift. Any idea why?

  • Philip

    Is there a version planned for Puppy Linux?

  • Jon Lund Steffensen

    @Devel505: Thanks. Added above.

    @t4nn3d1n: I don’t know of any brightness adjustment tools that will follow the time of day as Redshift does.

    @Eric: I’m quite confident that the color temperature that Redshift calculates is “correct” (under certain assumptions about the screen and graphics device). I don’t know why f.lux is so noticably different.

    @Philip: The source code should work on Puppy Linux too. Special packaging is for the users of Puppy Linux to produce. I will be happy to link to such a package.

  • Pingback: RedShift – La chaleur dans votre moniteur « Bux Blog()

  • Pingback: Redshift, Ne vous fatiguez plus. | Horyax()

  • Pingback: F.lux: adapt your monitor’s color settings to the time of day — omglog()

  • http://ndrw.me Andrew

    I almost gave up trying to get this to display correctly. I tried different locations, times, etc. but what always happened was that my LCD would immediately get redder even though it wasn’t anywhere near nighttime. I finally realized that all I had to do was bump up the daytime color temperature. I had absolutely no knowledge about color temperature so I didn’t want to mess with it, but a tiny bit of research found that typical LCDs are at 6500k. So that’s what I set it to and Voila my LCD’s back to its original shade. I don’t see why Redshift sets 5700k as the default daytime when 6500k is neutral. I also bumped up the nighttime to 4000k just because the default 3700k was a bit hard to see for me. Other than that tussle, I absolutely love this program.

  • Clayton

    I am happy with this program, but I have a question. I created a startup application where the command is ‘gtk-redshift -l 43.35:-90.09′, but is there a way to have it in the tray, but have the default value to toggled off instead of on so that it doesn’t always start enabled when I login every time?

  • Pingback: Redshift » El Blog de Sepa()

  • Pingback: RedShift GUI – Cuide dos seus olhos « Portuguese Geek Place()

  • Pingback: Redshift : Cuida tu vista | conecti.ca()

  • Pingback: تقليل إجهاد العين مع Redshift | ArLinux()

  • LEBB

    Very very happy with this!

    Suggestion: It would be nice to have a GUI accesable through the applet for the configuration. Also it would be nice that RedShift would appear in the Menu.

    Great APP!

  • punkmexic

    hello! is there a way to have a .deb for jaunty?
    im using netbook distro based in the cloud and is called jolicloud is a great distro but i dont have redshift here…this distro i dont know why but is derivated from ubuntu jaunty instead of lucid

  • Ben

    Thank you for this program! I was very disappointed with the Linux version of F.Lux on my laptop, and it doesn’t work at all on my desktop. I’m not sure if it’s because of my dual-monitor setup, compiz, or something else, but I could only occasionally get it to change the temp on one monitor. Redshift works flawlessly. I’m running Ubuntu 10.04 with an ATI Radeon 4870×2 using the ATI proprietary driver. Keep up the good work!

  • Pingback: Redshift su Fedora…i nostri occhi ringrazieranno « più e meno()

  • Pingback: Redshift – как уберечь свои глаза()