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 nvidiabl.                                     #
6
#                                                                   #
7
# Tested with a Sony Vaio VPCCW1S1E Laptop.                         #
8
#                                                                   #
9
# This has been tested on openSUSE 11.2, 11.3 & 11.4 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.7                                                    #
17
#                                                                   #
18
# Web: http://dev.osource.se/software/obacklight/                   #
19
# Rss: http://dev.osource.se/category/obacklight/feed/              #
20
#                                                                   #
21
# Last Updated:	2011-03-22 21:35                                    #
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 nvidiabl
32
# Description:       Provides a backlight event handler for nvidiabl.
33
#	Captures all backlight events from ACPI Events and feeds the to nvidiabl.
34
### END INIT INFO
35
 
36
init() {
37
## Default parameters
38
BMT="1"			# Set Brightness Mode Type.
39
			# Available types: 1, 2, 3
40
 
41
ACPIS="1"		# Set System ACPI.
42
			# 1 = Sony Vaio VPCCW1S1E
43
			# 2 = Dell Vostro 3700
44
 
45
## Various brightness modes
46
# Type 1 (Default)
47
if [ "$BMT" == "1" ]
48
then
49
  BBL="2"		# Default brightness level when on battery.
50
  DID="1"		# The amount of steps to increase/decrease with on backlight changes.
51
  MBV="7"		# Max brightness value possible on your system.
52
fi
53
# Type 2
54
if [ "$BMT" == "2" ]
55
then
56
  BBL="40"
57
  DID="10"
58
  MBV="127"
59
fi
60
# Type 3
61
if [ "$BMT" == "2" ]
62
then
63
  BBL="4"
64
  DID="1"
65
  MBV="32"
66
fi
67
 
68
## ACPI Codes for various systems.
69
 
70
# Sony Vaio VPCCW1S1E (Default)
71
if [ "$ACPIS" == "1" ]
72
then
73
  ACBU="00000001 00000011"	# ACPI brightness up event
74
  ACBD="00000001 00000010"	# ACPI brightness down event
75
  ACOB="00000081 00000000"	# ACPI brightness on battery event
76
fi
77
# Dell Vostro 3700
78
if [ "$ACPIS" == "2" ]
79
then
80
  ACBU="00000086 00000000"
81
  ACBD="00000087 00000000"
82
  ACOB="00000080 00000000"
83
fi
84
 
85
# Set correct values in configuration files on startup
86
echo "$MBV" > /sys/class/backlight/nvidia_backlight/brightness
87
echo "$MBV" > /root/oBacklight.def
88
 
89
# Check if oBacklight.def exists
90
if [ ! -e "/root/oBacklight.def" ]
91
 then
92
  echo "$MBV" > /root/oBacklight.def
93
fi
94
}
95
 
96
start() {
97
 
98
/etc/init.d/oBacklight run &
99
 
100
}
101
 
102
stop() {
103
 
104
echo $(cat /sys/class/backlight/nvidia_backlight/brightness) > /root/oBacklight.def
105
killall -r oBacklight
106
 
107
}
108
 
109
run() {
110
while [ exit != 130 ]
111
do
112
 
113
GVAR=$(cat /sys/class/backlight/nvidia_backlight/brightness)
114
 
115
CMD=$(acpi_listen -c 1 | egrep -o " [0-9].+" | egrep -o "[0-9].+")
116
 
117
# Brightness down acpi event
118
if [ "$CMD" == "$ACBD" ]
119
 then
120
 
121
  if [ "$GVAR" -ge "$DID" ] # Thanks to damdim @ nvnews forum for this fix.
122
   then
123
    SVAR=$(($GVAR - $DID))
124
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
125
    echo $SVAR > /root/oBacklight.def
126
   else
127
    SVAR="0"
128
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
129
    echo $SVAR > /root/oBacklight.def
130
  fi
131
 
132
fi
133
 
134
# Brightness up acpi event
135
if [ "$CMD" == "$ACBU" ]
136
 then
137
  if [ "$GVAR" -le $(($MBV-$DID)) ] # Thanks to damdim @ nvnews forum for this fix.
138
   then
139
    SVAR=$(($GVAR + $DID))
140
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
141
    echo $SVAR > /root/oBacklight.def
142
   else
143
    SVAR=$MBV
144
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
145
    echo $SVAR > /root/oBacklight.def
146
  fi
147
fi
148
 
149
# AC to battery change
150
if [ "$CMD" == "$ACOB" ]
151
 then
152
  if [ "$GVAR" > "$BBL" ]
153
   then
154
    echo $BBL > /sys/class/backlight/nvidia_backlight/brightness
155
    echo $BBL > /root/oBacklight.def
156
  fi
157
fi
158
 
159
done
160
}
161
 
162
case $1 in
163
start)
164
start
165
;;
166
stop)
167
stop
168
;;
169
run)
170
init
171
run
172
;;
173
*)
174
echo "start|stop|run"
175
;;
176
esac