Subversion Repositories oBacklight

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 soulskater 1
#!/bin/bash
2
 
3
#####################################################################
4
# Simple script to catch the changes to backlight events on sony    #
5
# in combination with nvidia_bl.                                    #
6
#                                                                   #
7
# Tested with a Sony Vaio VPCCW1S1E Laptop.                         #
8
#                                                                   #
9
# This has been tested on openSUSE 11.2 & 11.3 but should           #
10
# work on any distributions.                                        #
11
#                                                                   #
12
# Released under the BSDL Licens                                    #
13
#                                                                   #
14
# Developer: oSource Development                                    #
15
# DevTeam: Marcus Uddenhed                                          #
16
# Version: 0.3.4                                                    #
17
#                                                                   #
18
# Web: http://dev.osource.se/software/obacklight/                   #
19
# Rss: http://dev.osource.se/category/obacklight/feed/              #
20
#                                                                   #
21
# Last Updated:	2010-07-03 20:26                                    #
22
#                                                                   #
23
#####################################################################
24
 
25
### BEGIN INIT INFO
26
# Provides:          oBacklight
27
# Required-Start:    $acpid
28
# Required-Stop:
29
# Default-Start:     5
30
# Default-Stop:      0 1 2 3 6
31
# Short-Description: Provides a backlight event handler for nvidia_bl
32
# Description:       Provides a backlight event handler for nvidia_bl.
33
#	Captures all backlight events from ACPI Events and feeds the to nvidia_bl.
34
### END INIT INFO
35
 
36
init() {
37
# Default parameters
38
BBL="2"			# Default brightness level when on battery.
39
SCB="sony"		# Set which system ACPI is used.
40
			# Run 'sudo ls /sys/class/backlight' to determine your type.
41
			# Available options: sony
42
DID="1"			# The amount of steps to increase/decrease with on backlight changes.
43
DVOE="7"		# Default value to set when startup value is wrong,
44
			# should be your max brightness level.
45
MBV="7"			# Max brightness value possible on your system.
46
 
47
# Set correct value to /sys/class/backlight/nvidia_backlight/brightness
48
GVAR=$(cat /sys/class/backlight/nvidia_backlight/brightness)
49
if [ "$GVAR" > "$DVOE" ]
50
 then
51
  echo "$DVOE" > /sys/class/backlight/nvidia_backlight/brightness
52
fi
53
 
54
# Check if oBacklight.def exists
55
if [ ! -e "/root/oBacklight.def" ]
56
 then
57
  echo "$DVOE" > /root/oBacklight.def
58
fi
59
}
60
 
61
start() {
62
 
63
/etc/init.d/oBacklight run &
64
 
65
}
66
 
67
stop() {
68
 
69
echo $(cat /sys/class/backlight/nvidia_backlight/brightness) > /root/oBacklight.def
70
killall -r oBacklight
71
 
72
}
73
 
74
run() {
75
 
76
GVAR=$(cat /root/oBacklight.def)
77
echo $GVAR > /sys/class/backlight/nvidia_backlight/brightness
78
 
79
if [ "$SCB" = "sony" ]
80
 then
81
 
82
  while [ exit != 130 ]
83
  do
84
 
85
  GVAR=$(cat /sys/class/backlight/nvidia_backlight/brightness)
86
 
87
  CMD=$(acpi_listen -c 1 | egrep -o " [0-9].+" | egrep -o "[0-9].+")
88
 
89
  # Brightness down acpi event
90
  if [ "$CMD" == "00000001 00000010" ]
91
   then
92
 
93
    if [ "$GVAR" -ge "$DID" ] # Thanks to damdim @ nvnews forum for this fix.
94
     then
95
      SVAR=$(($GVAR - $DID))
96
      echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
97
      echo $SVAR > /root/oBacklight.def
98
     else
99
      SVAR="0"
100
      echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
101
      echo $SVAR > /root/oBacklight.def
102
    fi
103
 
104
  fi
105
 
106
  # Brightness up acpi event
107
  if [ "$CMD" == "00000001 00000011" ]
108
   then
109
    if [ "$GVAR" -le $(($MBV-$DID)) ] # Thanks to damdim @ nvnews forum for this fix.
110
     then
111
      SVAR=$(($GVAR + $DID))
112
      echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
113
      echo $SVAR > /root/oBacklight.def
114
     else
115
      SVAR=$MBV
116
      echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
117
      echo $SVAR > /root/oBacklight.def
118
    fi
119
  fi
120
 
121
  # AC to battery change
122
  if [ "$CMD" == "00000081 00000000" ]
123
   then
124
    if [ "$GVAR" > "$BBL" ]
125
     then
126
      echo $BBL > /sys/class/backlight/nvidia_backlight/brightness
127
      echo $BBL > /root/oBacklight.def
128
    fi
129
  fi
130
 
131
  done
132
 
133
fi
134
 
135
}
136
 
137
case $1 in
138
start)
139
start
140
;;
141
stop)
142
stop
143
;;
144
run)
145
init
146
run
147
;;
148
*)
149
echo "start|stop|run"
150
;;
151
esac