mirror of https://github.com/tLDP/LDP
130 lines
3.3 KiB
Bash
130 lines
3.3 KiB
Bash
#!/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
|