Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/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 INFOinit() {## Default parametersBMT="1" # Set Brightness Mode Types.# Available types: 1, 2, 3, 4ACPIS="1" # Set correct System ACPI codes.# Available settings: 1, 2, 3## Various brightness modes# Mode 1 (Default)if [ "$BMT" == "1" ]thenBBL="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 2if [ "$BMT" == "2" ]thenBBL="40"DID="10"MBV="127"fi# Mode 3if [ "$BMT" == "3" ]thenBBL="4"DID="1"MBV="32"fi# Mode 4# Tested on a VPCCW15FL, thanks to Estebanif [ "$BMT" == "4" ]thenBBL="40"DID="17"MBV="120"fi## ACPI Codes for various systems.# ACPIS 1(Default)# Works on some Sony Vaio VPCCW1S1Eif [ "$ACPIS" == "1" ]thenACBU="00000001 00000011" # ACPI brightness up eventACBD="00000001 00000010" # ACPI brightness down eventACOB="00000081 00000000" # ACPI brightness on battery eventfi# ACPIS 2# Works on some Sony Vaio VPCCW1S1Eif [ "$ACPIS" == "2" ]thenACBU="00000086 00000000"ACBD="00000087 00000000"ACOB="00000081 00000000"fi# ACPIS 3# Works on Dell Vostro 3700if [ "$ACPIS" == "3" ]thenACBU="00000086 00000000"ACBD="00000087 00000000"ACOB="00000080 00000000"fi# Set correct values in configuration files on startupecho "$MBV" > /sys/class/backlight/nvidia_backlight/brightnessecho "$MBV" > /root/oBacklight.def# Check if oBacklight.def existsif [ ! -e "/root/oBacklight.def" ]thenecho "$MBV" > /root/oBacklight.deffi}start() {/etc/init.d/oBacklight run &}stop() {echo $(cat /sys/class/backlight/nvidia_backlight/brightness) > /root/oBacklight.defkillall -r oBacklight}run() {while [ exit != 130 ]doGVAR=$(cat /sys/class/backlight/nvidia_backlight/brightness)CMD=$(acpi_listen -c 1 | egrep -o " [0-9].+" | egrep -o "[0-9].+")# Brightness down acpi eventif [ "$CMD" == "$ACBD" ]thenif [ "$GVAR" -ge "$DID" ] # Thanks to damdim @ nvnews forum for this fix.thenSVAR=$(($GVAR - $DID))echo $SVAR > /sys/class/backlight/nvidia_backlight/brightnessecho $SVAR > /root/oBacklight.defelseSVAR="0"echo $SVAR > /sys/class/backlight/nvidia_backlight/brightnessecho $SVAR > /root/oBacklight.deffifi# Brightness up acpi eventif [ "$CMD" == "$ACBU" ]thenif [ "$GVAR" -le $(($MBV-$DID)) ] # Thanks to damdim @ nvnews forum for this fix.thenSVAR=$(($GVAR + $DID))echo $SVAR > /sys/class/backlight/nvidia_backlight/brightnessecho $SVAR > /root/oBacklight.defelseSVAR=$MBVecho $SVAR > /sys/class/backlight/nvidia_backlight/brightnessecho $SVAR > /root/oBacklight.deffifi# AC to battery changeif [ "$CMD" == "$ACOB" ]thenif [ "$GVAR" > "$BBL" ]thenecho $BBL > /sys/class/backlight/nvidia_backlight/brightnessecho $BBL > /root/oBacklight.deffifidone}case $1 instart)start;;stop)stop;;run)initrun;;*)echo "start|stop|run";;esac