dotfiles/bin/set-light

44 lines
724 B
Bash
Executable File

#!/bin/bash
set -e
shopt -s extglob nullglob
set_brightness() {
MAX="$(cat "$1"/max_brightness)"
FILE="$1"/brightness
VAL="$(($2 * MAX / 100 + 1))"
[ "$VAL" -lt 0 ] && VAL=0
[ "$VAL" -gt "$MAX" ] && VAL="$MAX"
echo "$VAL" > "$FILE"
}
CUR_FILE="${XDG_CACHE_HOME:-$HOME/.cache}/current_brightness"
set +e
CUR="$(cat "$CUR_FILE" || echo 50)"
set -e
CUR="$((CUR - CUR % "$1"))"
case "${1:0:1}" in
'')
exit 1
;;
'+'|'-')
NEW="$((CUR + "$1"))"
;;
*)
NEW="$1"
;;
esac
[ "$NEW" -lt 0 ] && NEW=0
[ "$NEW" -gt 100 ] && NEW=100
for dev in /sys/class/backlight/*; do
set_brightness "$dev" "$NEW"
done
echo "$NEW" > "$CUR_FILE"
echo "$NEW"