Marty Oehme
5ce6111f51
`control-brightness` and `control-volume` both now have the exact same progress bar indicator. Additionally, by using the same dunst 'stack' they replace each other if invoked in quick succession, which I really like.
57 lines
1.5 KiB
Bash
Executable file
57 lines
1.5 KiB
Bash
Executable file
#!/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 "─" $((brightness / 5)) | sed 's/[0-9]//g')
|
|
if type dunstify 1>/dev/null 2>/dev/null; then
|
|
notcmd="dunstify -h string:x-dunst-stack-tag:brightness"
|
|
else
|
|
notcmd="notify-send -h string:x-dunst-stack-tag:brightness"
|
|
fi
|
|
$notcmd -a "changeVolume" -u low -i "$icon" \
|
|
-h int:value:"$brightness" "Brightness: $brightness%
|
|
$bar"
|
|
}
|
|
|
|
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
|