#!/usr/bin/bash SAVE_FILE="${HOME}/.cache/brightness-control-cache" let really_notify=1 notify-brightness() { ((${really_notify})) || return brightness="$(brightnessctl -m | sed 's/,/ /g' | awk '{print $4}' | tr -d '\n' | tr -d '%')" notify-send -h string:x-canonical-private-synchronous:brightness-control-sh -t 4000 -u normal -a "Brightness" -h int:value:"$brightness" "$brightness%" } save-brightness() { brightness="$(brightnessctl -m | sed 's/,/ /g' | awk '{print $4}' | tr -d '\n' | tr -d '%')" printf '%d' "${brightness}" >"${SAVE_FILE}" } restore-brightness() { if [ ! -e "${SAVE_FILE}" ]; then echo "brightness-control.sh: error: save file at \"${SAVE_FILE}\" not found" >&2 exit 1 fi brightness="$(cat "${SAVE_FILE}")" brightnessctl s "${brightness}%" } print-usage() { echo 'usage: brightness-control.sh [up|down|set|restore|display] ' 1>&2 exit 1 } if [ "$#" -lt 1 ]; then print-usage fi if [[ "${1}" == -n ]]; then really_notify=0 shift 1 fi ammount='5%' value='50%' if [ "${#}" -gt 1 ]; then ammount="${2}" value="${2}" fi case "${1}" in 'up') brightnessctl s "+${ammount}" > /dev/null notify-brightness save-brightness ;; 'down') brightnessctl s "${ammount}-" > /dev/null notify-brightness save-brightness ;; 'set') brightnessctl s "${value}" > /dev/null notify-brightness save-brightness ;; 'display') notify-brightness ;; 'restore') restore-brightness ;; *) print-usage ;; esac