50 lines
566 B
Bash
50 lines
566 B
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
save="/tmp/bkl"
|
||
|
|
||
|
idle_backlight=0
|
||
|
fade_step_time=0.02
|
||
|
|
||
|
get_brightness() {
|
||
|
float=$(light -G $1)
|
||
|
printf '%.*f\n' 0 $float
|
||
|
}
|
||
|
|
||
|
save(){
|
||
|
get_brightness > "$save"
|
||
|
}
|
||
|
|
||
|
resume(){
|
||
|
val=$(cat "$save")
|
||
|
set_backlight "$val"
|
||
|
}
|
||
|
|
||
|
set_backlight(){
|
||
|
local level
|
||
|
for level in $(eval echo {$(get_brightness)..$1}); do
|
||
|
light -S $level
|
||
|
sleep $fade_step_time
|
||
|
done
|
||
|
}
|
||
|
|
||
|
|
||
|
while getopts "drs0" opt; do
|
||
|
case $opt in
|
||
|
d)
|
||
|
set_backlight "$idle_backlight"
|
||
|
;;
|
||
|
r)
|
||
|
resume
|
||
|
;;
|
||
|
s)
|
||
|
save
|
||
|
;;
|
||
|
0)
|
||
|
set_backlight 0
|
||
|
;;
|
||
|
*)
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
done
|