37 lines
893 B
Bash
Executable file
37 lines
893 B
Bash
Executable file
#!/bin/zsh
|
|
# vim:ft=sh
|
|
|
|
OUTPUTS=($(xrandr -q | sed -n "s/^\(\S*\) connected.*$/\1/p"))
|
|
FADE_STEPS=200
|
|
FADE_DURATION=10
|
|
BRIGHTNESS=($(xrandr --verbose | sed -n 's/\s*Brightness: \([0-9]*\.[0-9]*\).*$/\1/p'))
|
|
|
|
|
|
reset_brightness() {
|
|
for ((i=1; i<=$#OUTPUTS; i++)); do
|
|
xrandr --output ${OUTPUTS[$i]} --brightness ${BRIGHTNESS[$i]}
|
|
done
|
|
}
|
|
|
|
|
|
fade() {
|
|
local level
|
|
start_time=$(date +%s.%6N)
|
|
for factor in {$FADE_STEPS..0};do
|
|
factor=$((1.0 * $factor / $FADE_STEPS))
|
|
sleep_until=$(( $start_time + (1.0 - $factor) * $FADE_DURATION ))
|
|
for ((i=1; i<=$#OUTPUTS; i++));do
|
|
xrandr --output ${OUTPUTS[$i]} --brightness $(($factor * ${BRIGHTNESS[$i]}))
|
|
done
|
|
now=$(date +%s.%6N)
|
|
sleep_time=$(( $sleep_until - $now ))
|
|
[[ $sleep_time > 0.0 ]] && sleep $sleep_time
|
|
done
|
|
}
|
|
|
|
trap 'exit 0' TERM INT
|
|
|
|
trap "reset_brightness; kill %%" EXIT
|
|
fade
|
|
sleep 2147483647 &
|
|
wait
|