#!/bin/bash usage() { cat <<-EOF Usage: ${0##*/} [options] Options: -x, --reset reset display to no redshift EOF if [[ $# -eq 0 ]] ; then exit 0 else printf '\nERROR: %s\n' "$*" >&2 exit 1 fi } rs() { exec redshift -m randr "$@" } main() { cd / export DISPLAY=:0 local auth="${HOME}/.Xauthority" if [[ -e ${auth} ]]; then export XAUTHORITY=${auth} fi while [[ $# -gt 0 ]] ; do case $1 in -x|--reset) rs -x ;; -h|--help) usage ;; *) usage "Unknown option: $1" ;; esac done h=$(date +%H) declare -A temps local min=2000 temps=( [20]=$(( min + 2000 )) [21]=$(( min + 1500 )) [22]=$(( min + 1000 )) [23]=$(( min + 500 )) [00]=$(( min )) [01]=$(( min )) [02]=$(( min )) [03]=$(( min )) [04]=$(( min )) [05]=$(( min )) [06]=$(( min + 500 )) [07]=$(( min + 1000 )) [08]=$(( min + 1500 )) [09]=$(( min + 2000 )) ) t=${temps[${h}]} if [[ -z ${t} ]]; then rs -x else rs -O ${t}k fi } main "$@"