31 lines
934 B
Bash
Executable File
31 lines
934 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Backlight control with a dunst OSD. usage: brightness up|down|set <n>
|
|
set -uo pipefail
|
|
|
|
STEP="${BRIGHTNESS_STEP:-5}"
|
|
MIN=1 # never go fully dark — that looks like a crash
|
|
ID=2594
|
|
|
|
command -v brightnessctl >/dev/null || { echo "brightnessctl not found" >&2; exit 1; }
|
|
|
|
pct() { brightnessctl -m | awk -F, '{gsub(/%/,"",$4); print $4}'; }
|
|
|
|
case "${1:-}" in
|
|
up) brightnessctl -q set "${STEP}%+" ;;
|
|
down) brightnessctl -q set "${STEP}%-" ;;
|
|
set) brightnessctl -q set "${2:?need a percentage}%" ;;
|
|
""|-h|--help) echo "usage: brightness up|down|set <percent>"; exit 0 ;;
|
|
*) echo "unknown action: $1" >&2; exit 2 ;;
|
|
esac
|
|
|
|
# Enforce the floor
|
|
current="$(pct)"
|
|
if (( current < MIN )); then
|
|
brightnessctl -q set "${MIN}%"
|
|
current="$MIN"
|
|
fi
|
|
|
|
command -v dunstify >/dev/null && \
|
|
dunstify -a osd -u low -r "$ID" -h "int:value:$current" \
|
|
-i display-brightness "Brightness ${current}%"
|