dotfiles/bin/brightne.sh

106 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
# brightne.sh
# changes my backlight brightness, for use with nvidiabl
# possibly the ugliest bash script ever
# Requires /sys/class/backlight/nvidia_backlight/
E_NOARGS=75
backlight_path=/sys/class/backlight/nvidia_backlight
usage() {
echo "Usage: brightne.sh [set|fix|up|down] arg between 0 and 1024"
}
get_raw_maximum() {
return `cat $backlight_path/max_brightness`
}
get_raw_current() {
return `cat $backlight_path/brightness`
}
set_raw() {
echo $1 > $backlight_path/brightness
}
# from 0-1024 to 0-max
scale_to_bl() {
get_raw_maximum
max=$?
scale_from_to $1 $max
}
scale_from_to() {
echo "$2 * $1 / 1024" | bc
}
# from 0-max to 0-1024
scale_from_bl() {
get_raw_maximum
max=$?
echo "1024 * $1 / $max" | bc
}
off() {
set_raw 0;
}
max() {
get_raw_maximum
raw_current=$?
set_raw $raw_current
}
set_bl() {
set_raw $(scale_to_bl $1)
}
get() {
get_raw_current
echo $(scale_from_bl $?)
}
fix() {
get_raw_current
set_raw $?
}
up() {
local addvalue=$1
if [ -z $1 ]
then
addvalue=10
fi
set_bl $(echo "$(get) + $addvalue" | bc)
}
down() {
local addvalue=$1
if [ -z $1 ]
then
addvalue=10
fi
set_bl $(echo "$(get) - $addvalue" | bc)
}
if [ -z "$1" ]
then
usage
exit $E_NOARGS
fi
case $1 in
"up" ) up $2;;
"set" ) set_bl $2;;
"down" ) down $2;;
"fix" ) fix;;
"get" ) get;;
"off" ) off ;;
"max" ) max ;;
* ) usage;;
esac
exit 0