Subversion Repositories oBacklight

Rev

Rev 2 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 3
1
#!/bin/bash
1
#!/bin/bash
2
 
2
 
3
#####################################################################
3
#####################################################################
4
# Simple script to catch the changes to backlight events on sony    #
4
# Simple script to catch the changes to backlight events on sony    #
5
# in combination with nvidiabl.                                     #
5
# in combination with nvidiabl.                                     #
6
#                                                                   #
6
#                                                                   #
7
# Tested with a Sony Vaio VPCCW1S1E Laptop.                         #
7
# Tested with a Sony Vaio VPCCW1S1E Laptop.                         #
8
#                                                                   #
8
#                                                                   #
9
# This has been tested on openSUSE 11.2, 11.3 & 11.4 and            #
9
# This has been tested on openSUSE 11.2, 11.3 & 11.4 and            #
10
# Ubuntu 11.10 but should work on any distributions.                #
10
# Ubuntu 11.10 but should work on any distributions.                #
11
#                                                                   #
11
#                                                                   #
12
# Released under the BSDL Licens                                    #
12
# Released under the BSDL Licens                                    #
13
#                                                                   #
13
#                                                                   #
14
# Developer: oSource Development                                    #
14
# Developer: oSource Development                                    #
15
# DevTeam: Marcus Uddenhed                                          #
15
# DevTeam: Marcus Uddenhed                                          #
16
# Version: 0.3.9                                                    #
16
# Version: 0.3.9                                                    #
17
#                                                                   #
17
#                                                                   #
18
# Web: http://dev.osource.se/software/obacklight/                   #
18
# Web: http://www.osource.se/                                       #
19
# Rss: http://dev.osource.se/category/obacklight/feed/              #
-
 
20
#                                                                   #
19
#                                                                   #
21
# Last Updated:	2012-04-13 20:08                                    #
20
# Last Updated:	2014-05-18 18:43                                    #
22
#                                                                   #
21
#                                                                   #
23
#####################################################################
22
#####################################################################
24
 
23
 
25
### BEGIN INIT INFO
24
### BEGIN INIT INFO
26
# Provides:          oBacklight
25
# Provides:          oBacklight
27
# Required-Start:    $acpid
26
# Required-Start:    $acpid
28
# Required-Stop:
27
# Required-Stop:
29
# Default-Start:     5
28
# Default-Start:     5
30
# Default-Stop:      0 1 2 3 6
29
# Default-Stop:      0 1 2 3 6
31
# Short-Description: Provides a backlight event handler for nvidiabl
30
# Short-Description: Provides a backlight event handler for nvidiabl
32
# Description:       Captures all backlight events from ACPI Events and feeds them to nvidiabl.
31
# Description:       Captures all backlight events from ACPI Events and feeds them to nvidiabl.
33
### END INIT INFO
32
### END INIT INFO
34
 
33
 
35
init() {
34
init() {
36
## Default parameters
35
## Default parameters
37
BMT="1"			# Set Brightness Mode Types.
36
BMT="1"			# Set Brightness Mode Types.
38
			# Available types: 1, 2, 3, 4
37
			# Available types: 1, 2, 3, 4
39
 
38
 
40
ACPIS="1"		# Set correct System ACPI codes.
39
ACPIS="1"		# Set correct System ACPI codes.
41
			# Available settings: 1, 2, 3
40
			# Available settings: 1, 2, 3
42
 
41
 
43
## Various brightness modes
42
## Various brightness modes
44
# Mode 1 (Default)
43
# Mode 1 (Default)
45
if [ "$BMT" == "1" ]
44
if [ "$BMT" == "1" ]
46
then
45
then
47
  BBL="2"		# Default brightness level when on battery.
46
  BBL="2"		# Default brightness level when on battery.
48
  DID="1"		# The amount of steps to increase/decrease with on backlight changes.
47
  DID="1"		# The amount of steps to increase/decrease with on backlight changes.
49
  MBV="7"		# Max brightness value possible on your system.
48
  MBV="7"		# Max brightness value possible on your system.
50
fi
49
fi
51
# Mode 2
50
# Mode 2
52
if [ "$BMT" == "2" ]
51
if [ "$BMT" == "2" ]
53
then
52
then
54
  BBL="40"
53
  BBL="40"
55
  DID="10"
54
  DID="10"
56
  MBV="127"
55
  MBV="127"
57
fi
56
fi
58
# Mode 3
57
# Mode 3
59
if [ "$BMT" == "3" ]
58
if [ "$BMT" == "3" ]
60
then
59
then
61
  BBL="4"
60
  BBL="4"
62
  DID="1"
61
  DID="1"
63
  MBV="32"
62
  MBV="32"
64
fi
63
fi
65
# Mode 4
64
# Mode 4
66
# Tested on a VPCCW15FL, thanks to Esteban
65
# Tested on a VPCCW15FL, thanks to Esteban
67
if [ "$BMT" == "4" ]
66
if [ "$BMT" == "4" ]
68
then
67
then
69
  BBL="40"
68
  BBL="40"
70
  DID="17"
69
  DID="17"
71
  MBV="120"
70
  MBV="120"
72
fi
71
fi
73
 
72
 
74
## ACPI Codes for various systems.
73
## ACPI Codes for various systems.
75
 
74
 
76
# ACPIS 1(Default)
75
# ACPIS 1(Default)
77
# Works on some Sony Vaio VPCCW1S1E 
76
# Works on some Sony Vaio VPCCW1S1E 
78
if [ "$ACPIS" == "1" ]
77
if [ "$ACPIS" == "1" ]
79
then
78
then
80
  ACBU="00000001 00000011"	# ACPI brightness up event
79
  ACBU="00000001 00000011"	# ACPI brightness up event
81
  ACBD="00000001 00000010"	# ACPI brightness down event
80
  ACBD="00000001 00000010"	# ACPI brightness down event
82
  ACOB="00000081 00000000"	# ACPI brightness on battery event
81
  ACOB="00000081 00000000"	# ACPI brightness on battery event
83
fi
82
fi
84
# ACPIS 2
83
# ACPIS 2
85
# Works on some Sony Vaio VPCCW1S1E 
84
# Works on some Sony Vaio VPCCW1S1E 
86
if [ "$ACPIS" == "2" ]
85
if [ "$ACPIS" == "2" ]
87
then
86
then
88
  ACBU="00000086 00000000"
87
  ACBU="00000086 00000000"
89
  ACBD="00000087 00000000"
88
  ACBD="00000087 00000000"
90
  ACOB="00000081 00000000"
89
  ACOB="00000081 00000000"
91
fi
90
fi
92
# ACPIS 3
91
# ACPIS 3
93
# Works on Dell Vostro 3700
92
# Works on Dell Vostro 3700
94
if [ "$ACPIS" == "3" ]
93
if [ "$ACPIS" == "3" ]
95
then
94
then
96
  ACBU="00000086 00000000"
95
  ACBU="00000086 00000000"
97
  ACBD="00000087 00000000"
96
  ACBD="00000087 00000000"
98
  ACOB="00000080 00000000"
97
  ACOB="00000080 00000000"
99
fi
98
fi
100
 
99
 
101
# Set correct values in configuration files on startup
100
# Set correct values in configuration files on startup
102
echo "$MBV" > /sys/class/backlight/nvidia_backlight/brightness
101
echo "$MBV" > /sys/class/backlight/nvidia_backlight/brightness
103
echo "$MBV" > /root/oBacklight.def
102
echo "$MBV" > /root/oBacklight.def
104
 
103
 
105
# Check if oBacklight.def exists
104
# Check if oBacklight.def exists
106
if [ ! -e "/root/oBacklight.def" ]
105
if [ ! -e "/root/oBacklight.def" ]
107
 then
106
 then
108
  echo "$MBV" > /root/oBacklight.def
107
  echo "$MBV" > /root/oBacklight.def
109
fi
108
fi
110
}
109
}
111
 
110
 
112
start() {
111
start() {
113
 
112
 
114
/etc/init.d/oBacklight run &
113
/etc/init.d/oBacklight run &
115
 
114
 
116
}
115
}
117
 
116
 
118
stop() {
117
stop() {
119
 
118
 
120
echo $(cat /sys/class/backlight/nvidia_backlight/brightness) > /root/oBacklight.def
119
echo $(cat /sys/class/backlight/nvidia_backlight/brightness) > /root/oBacklight.def
121
killall -r oBacklight
120
killall -r oBacklight
122
 
121
 
123
}
122
}
124
 
123
 
125
run() {
124
run() {
126
while [ exit != 130 ]
125
while [ exit != 130 ]
127
do
126
do
128
 
127
 
129
GVAR=$(cat /sys/class/backlight/nvidia_backlight/brightness)
128
GVAR=$(cat /sys/class/backlight/nvidia_backlight/brightness)
130
 
129
 
131
CMD=$(acpi_listen -c 1 | egrep -o " [0-9].+" | egrep -o "[0-9].+")
130
CMD=$(acpi_listen -c 1 | egrep -o " [0-9].+" | egrep -o "[0-9].+")
132
 
131
 
133
# Brightness down acpi event
132
# Brightness down acpi event
134
if [ "$CMD" == "$ACBD" ]
133
if [ "$CMD" == "$ACBD" ]
135
 then
134
 then
136
 
135
 
137
  if [ "$GVAR" -ge "$DID" ] # Thanks to damdim @ nvnews forum for this fix.
136
  if [ "$GVAR" -ge "$DID" ] # Thanks to damdim @ nvnews forum for this fix.
138
   then
137
   then
139
    SVAR=$(($GVAR - $DID))
138
    SVAR=$(($GVAR - $DID))
140
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
139
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
141
    echo $SVAR > /root/oBacklight.def
140
    echo $SVAR > /root/oBacklight.def
142
   else
141
   else
143
    SVAR="0"
142
    SVAR="0"
144
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
143
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
145
    echo $SVAR > /root/oBacklight.def
144
    echo $SVAR > /root/oBacklight.def
146
  fi
145
  fi
147
 
146
 
148
fi
147
fi
149
 
148
 
150
# Brightness up acpi event
149
# Brightness up acpi event
151
if [ "$CMD" == "$ACBU" ]
150
if [ "$CMD" == "$ACBU" ]
152
 then
151
 then
153
  if [ "$GVAR" -le $(($MBV-$DID)) ] # Thanks to damdim @ nvnews forum for this fix.
152
  if [ "$GVAR" -le $(($MBV-$DID)) ] # Thanks to damdim @ nvnews forum for this fix.
154
   then
153
   then
155
    SVAR=$(($GVAR + $DID))
154
    SVAR=$(($GVAR + $DID))
156
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
155
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
157
    echo $SVAR > /root/oBacklight.def
156
    echo $SVAR > /root/oBacklight.def
158
   else
157
   else
159
    SVAR=$MBV
158
    SVAR=$MBV
160
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
159
    echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
161
    echo $SVAR > /root/oBacklight.def
160
    echo $SVAR > /root/oBacklight.def
162
  fi
161
  fi
163
fi
162
fi
164
 
163
 
165
# AC to battery change
164
# AC to battery change
166
if [ "$CMD" == "$ACOB" ]
165
if [ "$CMD" == "$ACOB" ]
167
 then
166
 then
168
  if [ "$GVAR" > "$BBL" ]
167
  if [ "$GVAR" > "$BBL" ]
169
   then
168
   then
170
    echo $BBL > /sys/class/backlight/nvidia_backlight/brightness
169
    echo $BBL > /sys/class/backlight/nvidia_backlight/brightness
171
    echo $BBL > /root/oBacklight.def
170
    echo $BBL > /root/oBacklight.def
172
  fi
171
  fi
173
fi
172
fi
174
 
173
 
175
done
174
done
176
}
175
}
177
 
176
 
178
case $1 in
177
case $1 in
179
start)
178
start)
180
start
179
start
181
;;
180
;;
182
stop)
181
stop)
183
stop
182
stop
184
;;
183
;;
185
run)
184
run)
186
init
185
init
187
run
186
run
188
;;
187
;;
189
*)
188
*)
190
echo "start|stop|run"
189
echo "start|stop|run"
191
;;
190
;;
192
esac
191
esac