5

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

A typical redshift command is redshift -O 9999 which sets the screen color temperature at 9999K. Following a polyphasic sleep schedule, i want to change my screen color a few times a day.

So here's part of my crontab:

LOW='redshift -O 1000'
HIGH='redshift -O 9999'

30 4 * * * $LOW
45 12 * * * $LOW
45 20 * * * $LOW
0 6,15,23 * * * $HIGH

It doesn't do anything. I checked the syslog, it does run, but when i catch the output in a file, the file is empty.

Why does this not work? Are there any alternatives to Redshift i can try?

  • 2
    Commands ran from cron don't have the shell environment variables such as DISPLAY set. Consider what happens when you replace your command in cron with env. You need to set the DISPLAY variable. – Dan D. Jul 17 '13 at 0:14
5

Thanks Dan D. This worked:

LOW='redshift -O 1000'
HIGH='redshift -O 9999'
DISPLAY=:0.0

30 4 * * * $LOW
45 12 * * * $LOW
45 20 * * * $LOW
0 6,15,23 * * * $HIGH
  • how did this work? Didn't the comment from Dan D. say cron doesn't work for redshift? – xdavidliu Mar 13 '18 at 17:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.