#!/bin/bash # backlight.sh # reldate 02dec2011 # A bug in Fedora Core 16/17 messes up the keyboard backlight controls. # This script is a quick-n-dirty workaround, essentially a shell wrapper #+ for xrandr. It gives more control than on-screen sliders and widgets. OUTPUT=$(xrandr | grep LV | awk '{print $1}') # Get display name! INCR=.05 # For finer-grained control, set INCR to .03 or .02. old_brightness=$(xrandr --verbose | grep rightness | awk '{ print $2 }') if [ -z "$1" ] then bright=1 # If no command-line arg, set brightness to 1.0 (default). else if [ "$1" = "+" ] then bright=$(echo "scale=2; $old_brightness + $INCR" | bc) # +.05 else if [ "$1" = "-" ] then bright=$(echo "scale=2; $old_brightness - $INCR" | bc) # -.05 else if [ "$1" = "#" ] # Echoes current brightness; does not change it. then bright=$old_brightness else if [[ "$1" = "h" || "$1" = "H" ]] then echo echo "Usage:" echo "$0 [No args] Sets/resets brightness to default (1.0)." echo "$0 + Increments brightness by 0.5." echo "$0 - Decrements brightness by 0.5." echo "$0 # Echoes current brightness without changing it." echo "$0 N (number) Sets brightness to N (useful range .7 - 1.2)." echo "$0 h [H] Echoes this help message." echo "$0 any-other Gives xrandr usage message." bright=$old_brightness else bright="$1" fi fi fi fi fi xrandr --output "$OUTPUT" --brightness "$bright" # See xrandr manpage. # As root! E_CHANGE0=$? echo "Current brightness = $bright" exit $E_CHANGE0 # =========== Or, alternately . . . ==================== # #!/bin/bash # backlight2.sh # reldate 20jun2012 # A bug in Fedora Core 16/17 messes up the keyboard backlight controls. # This is a quick-n-dirty workaround, an alternate to backlight.sh. target_dir=\ /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/backlight/acpi_video0 # Hardware directory. actual_brightness=$(cat $target_dir/actual_brightness) max_brightness=$(cat $target_dir/max_brightness) Brightness=$target_dir/brightness let "req_brightness = actual_brightness" # Requested brightness. if [ "$1" = "-" ] then # Decrement brightness 1 notch. let "req_brightness = $actual_brightness - 1" else if [ "$1" = "+" ] then # Increment brightness 1 notch. let "req_brightness = $actual_brightness + 1" fi fi if [ $req_brightness -gt $max_brightness ] then req_brightness=$max_brightness fi # Do not exceed max. hardware design brightness. echo echo "Old brightness = $actual_brightness" echo "Max brightness = $max_brightness" echo "Requested brightness = $req_brightness" echo # ===================================== echo $req_brightness > $Brightness # Must be root for this to take effect. E_CHANGE1=$? # Successful? # ===================================== if [ "$?" -eq 0 ] then echo "Changed brightness!" else echo "Failed to change brightness!" fi act_brightness=$(cat $Brightness) echo "Actual brightness = $act_brightness" scale0=2 sf=100 # Scale factor. pct=$(echo "scale=$scale0; $act_brightness / $max_brightness * $sf" | bc) echo "Percentage brightness = $pct%" exit $E_CHANGE1