#!/usr/bin/env bash # Backlight control with a dunst OSD. usage: brightness up|down|set 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 "; 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}%"