Files
2026-09-14 15:31:20 -05:00

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}%"