#!/bin/sh BRIGHTNESS_FILE="/sys/class/backlight/intel_backlight/brightness" BRIGHTNESS_MAX=937 function change_brightness() { BRIGHTNESS=$(cat $BRIGHTNESS_FILE) change_value=$2 # If we're dealing with percentages, convert to absolutes if [ $3 == "%" ]; then change_value=$((($BRIGHTNESS_MAX / 100) * $change_value)) elif [ $3 == "#" ]; then change_value=$change_value else echo "Invalid unit, options: [% - percent, # - absolute], default: %" exit 1 fi # Increment or decrement based on first arg if [ $1 == "+" ]; then new_brightness=$(($BRIGHTNESS + $change_value)) elif [ $1 == "-" ]; then new_brightness=$(($BRIGHTNESS - $change_value)) else echo "Invalid operator, options: [+, -]" exit 1 fi # Make sure we respect min/max boundaries if [ $new_brightness -lt 0 ]; then new_brightness=0 elif [ $new_brightness -gt $BRIGHTNESS_MAX ]; then new_brightness=$BRIGHTNESS_MAX fi # Write the brightness (sudo shouldn't require password here) echo $new_brightness | sudo tee $BRIGHTNESS_FILE } if [ $# -ge 1 ] && [ "$1" == "+" ] || [ "$1" == "-" ]; then if [ $# -lt 2 ]; then change_value=5 # Default to 5% else change_value=$2 fi if [ $# -lt 3 ]; then unit="%" else unit=$3 fi change_brightness $1 $change_value $unit > /dev/null fi # Display new brightness BRIGHTNESS=$(cat $BRIGHTNESS_FILE) BRIGHTNESS_PERCENT=$(echo "($BRIGHTNESS / $BRIGHTNESS_MAX) * 100" | bc -l) BRIGHTNESS_PERCENT=$(printf "%.2f" $BRIGHTNESS_PERCENT) echo "Brightness: ${BRIGHTNESS_PERCENT}% (absolute: $BRIGHTNESS)"