0,0 → 1,192 |
#!/bin/bash |
|
##################################################################### |
# Simple script to catch the changes to backlight events on sony # |
# in combination with nvidiabl. # |
# # |
# Tested with a Sony Vaio VPCCW1S1E Laptop. # |
# # |
# This has been tested on openSUSE 11.2, 11.3 & 11.4 and # |
# Ubuntu 11.10 but should work on any distributions. # |
# # |
# Released under the BSDL Licens # |
# # |
# Developer: oSource Development # |
# DevTeam: Marcus Uddenhed # |
# Version: 0.3.9 # |
# # |
# Web: http://dev.osource.se/software/obacklight/ # |
# Rss: http://dev.osource.se/category/obacklight/feed/ # |
# # |
# Last Updated: 2012-04-13 20:08 # |
# # |
##################################################################### |
|
### BEGIN INIT INFO |
# Provides: oBacklight |
# Required-Start: $acpid |
# Required-Stop: |
# Default-Start: 5 |
# Default-Stop: 0 1 2 3 6 |
# Short-Description: Provides a backlight event handler for nvidiabl |
# Description: Captures all backlight events from ACPI Events and feeds them to nvidiabl. |
### END INIT INFO |
|
init() { |
## Default parameters |
BMT="1" # Set Brightness Mode Types. |
# Available types: 1, 2, 3, 4 |
|
ACPIS="1" # Set correct System ACPI codes. |
# Available settings: 1, 2, 3 |
|
## Various brightness modes |
# Mode 1 (Default) |
if [ "$BMT" == "1" ] |
then |
BBL="2" # Default brightness level when on battery. |
DID="1" # The amount of steps to increase/decrease with on backlight changes. |
MBV="7" # Max brightness value possible on your system. |
fi |
# Mode 2 |
if [ "$BMT" == "2" ] |
then |
BBL="40" |
DID="10" |
MBV="127" |
fi |
# Mode 3 |
if [ "$BMT" == "3" ] |
then |
BBL="4" |
DID="1" |
MBV="32" |
fi |
# Mode 4 |
# Tested on a VPCCW15FL, thanks to Esteban |
if [ "$BMT" == "4" ] |
then |
BBL="40" |
DID="17" |
MBV="120" |
fi |
|
## ACPI Codes for various systems. |
|
# ACPIS 1(Default) |
# Works on some Sony Vaio VPCCW1S1E |
if [ "$ACPIS" == "1" ] |
then |
ACBU="00000001 00000011" # ACPI brightness up event |
ACBD="00000001 00000010" # ACPI brightness down event |
ACOB="00000081 00000000" # ACPI brightness on battery event |
fi |
# ACPIS 2 |
# Works on some Sony Vaio VPCCW1S1E |
if [ "$ACPIS" == "2" ] |
then |
ACBU="00000086 00000000" |
ACBD="00000087 00000000" |
ACOB="00000081 00000000" |
fi |
# ACPIS 3 |
# Works on Dell Vostro 3700 |
if [ "$ACPIS" == "3" ] |
then |
ACBU="00000086 00000000" |
ACBD="00000087 00000000" |
ACOB="00000080 00000000" |
fi |
|
# Set correct values in configuration files on startup |
echo "$MBV" > /sys/class/backlight/nvidia_backlight/brightness |
echo "$MBV" > /root/oBacklight.def |
|
# Check if oBacklight.def exists |
if [ ! -e "/root/oBacklight.def" ] |
then |
echo "$MBV" > /root/oBacklight.def |
fi |
} |
|
start() { |
|
/etc/init.d/oBacklight run & |
|
} |
|
stop() { |
|
echo $(cat /sys/class/backlight/nvidia_backlight/brightness) > /root/oBacklight.def |
killall -r oBacklight |
|
} |
|
run() { |
while [ exit != 130 ] |
do |
|
GVAR=$(cat /sys/class/backlight/nvidia_backlight/brightness) |
|
CMD=$(acpi_listen -c 1 | egrep -o " [0-9].+" | egrep -o "[0-9].+") |
|
# Brightness down acpi event |
if [ "$CMD" == "$ACBD" ] |
then |
|
if [ "$GVAR" -ge "$DID" ] # Thanks to damdim @ nvnews forum for this fix. |
then |
SVAR=$(($GVAR - $DID)) |
echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness |
echo $SVAR > /root/oBacklight.def |
else |
SVAR="0" |
echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness |
echo $SVAR > /root/oBacklight.def |
fi |
|
fi |
|
# Brightness up acpi event |
if [ "$CMD" == "$ACBU" ] |
then |
if [ "$GVAR" -le $(($MBV-$DID)) ] # Thanks to damdim @ nvnews forum for this fix. |
then |
SVAR=$(($GVAR + $DID)) |
echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness |
echo $SVAR > /root/oBacklight.def |
else |
SVAR=$MBV |
echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness |
echo $SVAR > /root/oBacklight.def |
fi |
fi |
|
# AC to battery change |
if [ "$CMD" == "$ACOB" ] |
then |
if [ "$GVAR" > "$BBL" ] |
then |
echo $BBL > /sys/class/backlight/nvidia_backlight/brightness |
echo $BBL > /root/oBacklight.def |
fi |
fi |
|
done |
} |
|
case $1 in |
start) |
start |
;; |
stop) |
stop |
;; |
run) |
init |
run |
;; |
*) |
echo "start|stop|run" |
;; |
esac |