The following script let you turn your screen brightness up/down, but also adjust the color for night time.
Copy and paste code below in a nightlight.sh file
chmod +x nightlight.sh
and run
./nightlight.sh on .5
Code:
#!/bin/sh
export DISPLAY=$(w $(id -un) | awk 'NF > 7 && $2 ~ /tty[0-9]+/ {print $3; exit}')
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
display=`xrandr | grep "\ connected" | cut -d" " -f1
`
brightness="$2"
# Check if brightness was specified. If not, set screen to 50% brightness
if (echo $2 | grep [0-9]);then
brightness="$2"
elif (echo $1 | grep -q help);then
echo "############"
else
brightness=".5"
echo "Brightness variable not set, setting to fallback of 50%"
fi
night_mode() {
for disp in ${display}; do
xrandr --output $disp --gamma $1 --brightness ${brightness}
done }
# auto is for future development
# auto() {
# The idea behind auto is to setup something that can pull the actual sunrise/sunset times then automatically adjust the display.
# Ideally there would be an algorithm so it does it slowly over a period of time, say slightly change the color over 30 minutes.
# until the desired color limit is reached
#
# curl sunrise-sunset.com/timezone/time
# if (time > sunset && colorTemp != colorTempMin); then
# set color to current temp-1
# elif (time > sunrise && colorTemp != colorTempMax); then);
# set to full brightness and temp
# else
# unable to parse, skipping.
# fi
#}
help() {
echo " Help for nightmode script.
How to run script
./nightmode.sh on/off brightness
Examples:
Turn nightmode on and set screen brightness to 75%
./nightmode.sh on .75
Turn night mode off and set screen brightness to 100%
./nightmode.sh off 1
"
}
case $1 in
off) night_mode 1:1:1 1.0 ;;
help) help ;;
auto) auto ;;
*) night_mode 1:1:0.5 ;;
esac
Setup in crontab to automatically trigger when it gets night or morning
* 21 * * * ~/nightlight.sh on .5 # Turn on at night
* 7 * * * ~/nightlight.sh off 1 # Turn off in the morning