config/modules/profiles/desktop/brightness

47 lines
858 B
Bash
Executable File

#!/usr/bin/env bash
#
# This is a shell "application", but doesn't have to be one, so
# leaving the shebang in place.
set -euo pipefail
dir=$(find /sys/devices/ -name intel_backlight | head -1)
if [[ -z "$dir" ]]; then
echo "intel_backlight not found"
exit 1
fi
max=$(cat "$dir/max_brightness")
now=$(cat "$dir/brightness")
step=$((max * 5 / 100))
min=100
clamp() {
if [[ $1 -gt $max ]]; then
echo "$max"
elif [[ $1 -lt $min ]]; then
echo "$min"
else
echo "$1"
fi
}
info() {
perc="$(echo "$1*100/$max" | bc -l)"
printf "%s of %s (%.2f%%)\n" "$1" "$max" "$perc"
}
new=
case "${1:-}" in
up)
new=$(clamp $((now + step)) ) ;;
down)
new=$(clamp $((now - step)) ) ;;
esac
if [[ -n "$new" ]]; then
echo "$new" | sudo tee "$dir/brightness" > /dev/null
info "$new"
else
info "$now"
fi