Skip to content

Instantly share code, notes, and snippets.

@Apsu
Last active October 1, 2015 03:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Apsu/1914172 to your computer and use it in GitHub Desktop.
Save Apsu/1914172 to your computer and use it in GitHub Desktop.
Backlight control with smooth transitions
#!/usr/bin/env bash
adjust() {
delay=0.01
bl_base=$2
cur_br=$(cat $bl_base/brightness)
min_br=0
max_br=$(cat $bl_base/max_brightness)
case $1 in
up)
adj_br=$(($cur_br + 10))
;;
down)
adj_br=$(($cur_br - 10))
;;
min)
adj_br=$min_br
;;
mid)
adj_br=$((($max_br+ $min_br) / 2))
;;
max)
adj_br=$max_br
;;
esac
if [[ $cur_br -eq $adj_br ]]
then
echo $adj_br > $bl_base/brightness
elif [[ $cur_br -lt $adj_br ]]
then
for i in $(seq $cur_br $adj_br)
do
echo $i > $bl_base/brightness
sleep $delay
done
elif [[ $cur_br -gt $adj_br ]]
then
for i in $(seq $cur_br -1 $adj_br)
do
echo $i > $bl_base/brightness
sleep $delay
done
fi
}
usage() {
echo "Usage: [bl | kb] [min | mid | max | up | down]"
exit 1
}
case $1 in
bl | kb)
if [[ $1 == "bl" ]]
then
bl_base=/sys/class/backlight/acpi_video0
elif [[ $1 == "kb" ]]
then
bl_base=/sys/class/leds/smc::kbd_backlight
fi
shift
;&
min | mid | max | up | down)
if [[ -z $bl_base ]]
then
usage
fi
adjust $1 $bl_base
;;
*)
usage
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment