Marty Oehme
d2e44d330d
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.
55 lines
1.6 KiB
Bash
Executable file
55 lines
1.6 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 "─" 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
|