#!/bin/bash -e function get_current() { local cur; cur="$(cat "$1/brightness")" local max; max="$(cat "$1/max_brightness")" echo "$((cur * 100 / max))" } function set_light() { local max; max="$(cat "$1/max_brightness")" echo "$((CUR * max / 100))" > "$1/brightness" } DIRS=(/sys/class/backlight/*) CUR="$(get_current "${DIRS[0]}")" echo "$CUR" echo "\$(($CUR + $1 - $CUR % $1 + $CUR % $1 / $1 * $1))" case "${1:0:1}" in '') echo "$CUR"; exit ;; '+'|'-') CUR="$(($CUR + $1 - $CUR % $1 + $CUR % $1 * 10 / $1 / 5 * $1))" ;; *) CUR="$1" ;; esac echo "$CUR" [ "$CUR" -lt 0 ] && CUR=0 [ "$CUR" -gt 100 ] && CUR=100 for d in "${DIRS[@]}"; do set_light "$d" done notify-send -t 1000 -u low -i display-brightness-symbolic \ -h string:synchronous:light -h int:value:"$CUR" "$CUR%"