56 lines
1.6 KiB
Text
56 lines
1.6 KiB
Text
|
#!/usr/bin/env sh
|
||
|
# Brightness control script using xbacklight
|
||
|
# Will use notify-send to create brightness notifications, if dunst is used
|
||
|
# or the notification daemon supports tag stacks, will automatically update
|
||
|
# the same notifications and not create new ones.
|
||
|
#
|
||
|
# inspired from https://gist.github.com/Blaradox/030f06d165a82583ae817ee954438f2e
|
||
|
|
||
|
usage() {
|
||
|
echo "usage: control-brightness up|down [step], where step can be any int value
|
||
|
or: control-brightness set target, where target can be an int value 0-100"
|
||
|
}
|
||
|
|
||
|
direction=$1
|
||
|
step=${2:-10}
|
||
|
|
||
|
get_brightness() {
|
||
|
xbacklight -get | cut -d. -f1
|
||
|
}
|
||
|
|
||
|
send_notification() {
|
||
|
icon="preferences-system-brightness-lock"
|
||
|
brightness=$(get_brightness)
|
||
|
# Make the bar with the special character ─ (it's not dash -)
|
||
|
# https://en.wikipedia.org/wiki/Box-drawing_character
|
||
|
bar=$(seq -s "─" 0 $((brightness / 5)) | sed 's/[0-9]//g' |
|
||
|
sed -e 's/^─/┠/' -e 's/^\(.\{20\}\)/\1┫/')
|
||
|
if type dunstify 1>/dev/null 2>/dev/null; then
|
||
|
dunstify -i "$icon" -u normal " $bar" -a "xbacklight" -h string:x-dunst-stack-tag:brightness
|
||
|
else
|
||
|
notify-send -i "$icon" -u normal " $bar" -a "xbacklight" -h string:x-dunst-stack-tag:brightness
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
case $direction in
|
||
|
up)
|
||
|
xbacklight -inc "$step"
|
||
|
send_notification
|
||
|
;;
|
||
|
down)
|
||
|
xbacklight -dec "$step"
|
||
|
send_notification
|
||
|
;;
|
||
|
set)
|
||
|
if [ -z "$step" ]; then
|
||
|
echo "set option requires target brightness to be specified."
|
||
|
return 1
|
||
|
fi
|
||
|
xbacklight -set "$step"
|
||
|
send_notification
|
||
|
;;
|
||
|
*)
|
||
|
echo "usage: control-brightness up|down [step], where step can be any int value"
|
||
|
;;
|
||
|
esac
|