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:
parent
0a6f47bc5a
commit
d2e44d330d
4 changed files with 64 additions and 7 deletions
55
scripts/.local/bin/control-brightness
Executable file
55
scripts/.local/bin/control-brightness
Executable 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue