dunst: Add brightness level notifications

Added notifications on changing brightness, will stack by default to
show the current level before disappearing.

The script to change and notify can be run through the command
`control-brightness`, and is bound to the sxhkd media key shortcuts for
brightness changes.

Removed the brightness indicator from polybar since it should be easy
enough to check current brightness by doing a quick higher-lower and
that's it.

Kept the module in polybar configuration script since I might reconsider
its removal if it turns out to have been useful.
This commit is contained in:
Marty Oehme 2020-12-20 23:13:36 +01:00
parent 0a6f47bc5a
commit d2e44d330d
Signed by: Marty
GPG key ID: B7538B8F50A1C800
4 changed files with 64 additions and 7 deletions

View file

@ -0,0 +1,55 @@
#!/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