Skip to content

Instantly share code, notes, and snippets.

@Jaywalker
Created August 12, 2019 15:46
Show Gist options
  • Save Jaywalker/03b9427215e2846c313d2725fedfa316 to your computer and use it in GitHub Desktop.
Save Jaywalker/03b9427215e2846c313d2725fedfa316 to your computer and use it in GitHub Desktop.
An xbacklight (semi)-compatible alternative for unsupported systems (specifically my System76 machine)
#!/bin/bash
function usage {
echo "usage: $0 [options]"
echo " where options are:"
echo " -help"
echo " -set <percentage> or = <percentage>"
echo " -inc <percentage> or + <percentage>"
echo " -dec <percentage> or - <percentage>"
echo " -get"
}
if [ $# -gt 0 ]; then
CURRENT="$(cat /sys/class/backlight/intel_backlight/brightness)"
MAX="$(cat /sys/class/backlight/intel_backlight/max_brightness)"
if [ "$1" == "-get" ]; then
PERCENT="$(( MAX / CURRENT ))"
PERCENT="$(( 100 / PERCENT ))"
echo "$PERCENT%"
elif [ "$1" == "-set" ] || [ "$1" == "=" ]; then
if [ $# -gt 1 ]; then
if [ "$2" -eq "$2" ]; then #Bash hack to see if it's a number
if [ "$2" -lt 101 ] && [ "$2" -gt -1 ]; then
VALUE="$(( MAX*$2/100 ))"
echo $VALUE > /sys/class/backlight/intel_backlight/brightness
else
echo "Error: <percentage> argument must be between 0 and 100"
usage
fi
else
echo "Error: <percentage> argument must be an integer"
usage
fi
else
echo "Error: Missing <percentage> arguement"
usage
fi
elif [ "$1" == "-inc" ] || [ "$1" == "+" ]; then
if [ $# -gt 1 ]; then
if [ "$2" -eq "$2" ]; then #Bash hack to see if it's a number
if [ "$2" -lt 101 ] && [ "$2" -gt -1 ]; then
VALUE="$(( ( MAX*$2/100 ) + CURRENT ))"
echo $VALUE > /sys/class/backlight/intel_backlight/brightness
else
echo "Error: <percentage> argument must be between 0 and 100"
usage
fi
else
echo "Error: <percentage> argument must be an integer"
usage
fi
else
echo "Error: Missing <percentage> arguement"
usage
fi
elif [ "$1" == "-dec" ] || [ "$1" == "-" ]; then
if [ $# -gt 1 ]; then
if [ "$2" -eq "$2" ]; then #Bash hack to see if it's a number
if [ "$2" -lt 101 ] && [ "$2" -gt -1 ]; then
VALUE="$(( CURRENT - (MAX*$2/100) ))"
echo $VALUE > /sys/class/backlight/intel_backlight/brightness
else
echo "Error: <percentage> argument must be between 0 and 100"
usage
fi
else
echo "Error: <percentage> argument must be an integer"
usage
fi
else
echo "Error: Missing <percentage> arguement"
usage
fi
fi
else
usage
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment