From the Redshift project web page:
- 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.
- 1 Installation
- 2 Configuration
- 3 Troubleshooting
- 4 See also
Install the package. Alternatively, install the AUR package, for a version with minimal dependencies.
redshift-gtk command is provided by the package. Redshift-GTK provides a system tray icon for controlling Redshift and requires the following packages to be installed: , , and . An alternative (non-GTK solution) for KDE is available as AUR.
GNOME Shell Extension
InstallAUR, restart/re-login and enable/configure the extension with .
Redshift will at least need your location to start, meaning the latitude and longitude of your location. Redshift employs several routines for obtaining your location. If none of them works (e.g. none of the used helper programs is installed), you need to enter your location manually: For most places/cities an easy way is to look up the wikipedia page of that place and get the location from there (search the page for "coordinates").
There are several options to have redshift automatically started:
- By launching redshift with a script under
- By using the provided systemd service unit files. Be careful: the service can only be started in user mode, see systemd/User#Basic setup. Two service files are provided:
/usr/lib/systemd/user/redshift-gtk.service. Activate only one of them depending on whether or not you want the system tray icon. The
DISPLAYenvironment variable needs to be configured. See systemd/User#DISPLAY and XAUTHORITY.
- By right-clicking the system tray icon when redshift-gtk or plasma5-applets-redshift-control is already launched and selecting 'Autostart'.
- By using your preferred window manager or desktop environment's autostart methods. For example in i3, the following line could be added to the config file:
exec --no-startup-id redshift-gtk
To just get it up and running with a basic setup, issue:
$ redshift -l LAT:LON
where LAT is the latitude and LON is the longitude of your location.
Automatic location based on GPS
You can also use
redshift -l $lat;$lon:
#!/bin/bash date #gpsdata=$( gpspipe -w -n 10 | grep -m 1 lon ) gpsdata=$( gpspipe -w | grep -m 1 TPV ) lat=$( echo "$gpsdata" | jsawk 'return this.lat' ) lon=$( echo "$gpsdata" | jsawk 'return this.lon' ) alt=$( echo "$gpsdata" | jsawk 'return this.alt' ) dt=$( echo "$gpsdata" | jsawk 'return this.time' ) echo "$dt" echo "You are here: $lat, $lon at $alt"
For more information, see this forums thread.
Redshift reads the configuration file
~/.config/redshift.conf, if it exists. However, Redshift does not create that configuration file, so you have to create it manually.
Below is an example (copied from the Redshift website).
; Global settings for redshift [redshift] ; Set the day and night screen temperatures (Neutral is 6500K) 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: 'geoclue2' or '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
Use real screen brightness
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. 
Changing screen backlight is possible with redshift hooks and Backlight#xbacklight as there are some limitations and you may have to find another method of controlling the backlight depending on your hardware.and but, please see
You need to create a file in
~/.config/redshift/hooks and make it executable. You can use and edit this example.
#!/bin/sh # Set brightness via xbrightness when redshift status changes # Set brightness values for each status. # Range from 1 to 100 is valid brightness_day="100" brightness_transition="50" brightness_night="10" # Set fade time for changes to one minute fade_time=60000 case $1 in period-changed) case $3 in night) xbacklight -set $brightness_night -time $fade_time ;; transition) xbacklight -set $brightness_transition -time $fade_time ;; daytime) xbacklight -set $brightness_day -time $fade_time ;; esac ;; esac
Screen 1 could not be found
Locate configuration-file "redshift.conf" in your distribution and change "screen 1" to "screen 0"
Left/right clicking the tray icon doesn't work
Failed to run Redshift due to geoclue2
If using GNOME, you can also toggle Location Services to "On" in "Settings -> Privacy"
By default, the geoclue2 configuration files does not allow Redshift access.
In order to allow access, add the following lines to
[redshift] allowed=true system=false users=