#!/bin/sh help() { cat << EOF ${0}: Wrapper script to change backlight options: -i [Brg] Increase backlight by Brg -d [Brg] Decrease backlight by Brg -s [Brg] Set backlight to Brg -p Show the current backlight -h Print this message and exit NOTE: Script interprets values as percentages EOF } err() { for line in "${@}"; do echo "${line}" >&2 done exit 1 } run() { if ! ${1} > /dev/null 2>&1; then err "${2}" fi [ -n "${3}" ] && echo "${3}" slreload || echo "Warning: Failed to reload slstatus" >&2 exit 0 } if ! command -v brightnessctl > /dev/null 2>&1; then err "${0}: brightnessctl must be installed" fi if [ ${#} != 1 ] && [ ${#} != 2 ]; then err "${0}: Invalid usage" "Try '${0} -h' for help." fi while getopts "i:d:s:ph" option; do case "${option}" in i) run "brightnessctl set +${OPTARG}%" \ "${0}: Failed to increase brightness" ;; d) run "brightnessctl set ${OPTARG}-%" \ "${0}: Failed to decrease brightness" ;; s) run "brightnessctl set ${OPTARG}%" \ "${0}: Failed to set brightness" ;; p) if ! echo $(( (`brightnessctl g` * 100) / `brightnessctl m` )); then err "Failed to get current brightness" else exit 0 fi ;; h) help; exit 0 ;; *) err "Try '${0} -h' for help." ;; esac done err "${0}: Invalid usage" "Try '${0} -h' for help."