I am on Mint XFCE and Redshift is just so inconsistent and I have tried its forks, also inconsistent. So instead I have been using sct in the terminal to adjust the temperature, and have set a command that resets it back to normal every time that I log on. However, I was wondering if there is a way to make it so that “sct 2750” runs every day at 10 pm or during a specific period of time.
Edit: I figured out the solution which was to create a crontab with the following line in it: 0 22 * * * env DISPLAY=:0 XAUTHORITY=$HOME/.Xauthority /usr/bin/sct 2750
You seem to have fallen foul of all the SystemD haters in the voting, when this is the best answer. OP’s question was about doing one thing on a timer and a very similar thing on login; SystemD can achieve both of these in one place with proper logging and status displays, whereas Cron cannot.
Most of the things that you’d want to run on a timer have additional dependencies (I’d like to snapshot the database if the database is running; I’d like to backup up my files to a remote server if the network is up) which as easy to express in SystemD files as anything else it can do. Might as well learn to use the most versatile and powerful tool if you’re going to learn anything. Admittedly, I don’t like its syntax, but it achieves this kind of thing perfectly.
@addie @Dirk I think you’re spot on. SystemD timers are mildly more inconvenient to create than cron jobs, but massively more convenient to maintain and work with for real.
An additional thing is that cronie/cron has no idea about an user desktop session out of the box while systemd user scripts do
OP edited this solution which needed a special env variable DISPLAY
this might be common knowledge but it certainly is not for a beginner