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.2                                                    #
17
#                                                                   #
18
# Web: http://dev.osource.se/software/obacklight/                   #
19
# Rss: http://dev.osource.se/category/obacklight/feed/              #
20
#                                                                   #
21
# Last Updated:	2010-06-24 13:21                                    #
22
#                                                                   #
23
#####################################################################
24
 
25
### BEGIN INIT INFO
26
# Provides:          oBacklight
27
# Required-Start:    $acpid
28
# Default-Start:     5
29
# Default-Stop:      0 1 2 3 6
30
# Short-Description: Provides a backlight event handler for nvidia_bl
31
# Description:       Provides a backlight event handler for nvidia_bl.
32
#	Captures all backlight events from ACPI Events.
33
### END INIT INFO
34
 
35
init() {
36
# Default parameters
37
BBL="2"			# Default brightness level when on battery(0-7).
38
SCB="sony"		# Set which system ACPI is used.
39
			# run 'sudo ls /sys/class/backlight' to determine your type.
40
			# Available options: sony
41
 
42
# Set correct value to /sys/class/backlight/nvidia_backlight/brightness
43
GVAR=$(cat /sys/class/backlight/nvidia_backlight/brightness)
44
if [ "$GVAR" > "7" ]
45
 then
46
  echo "7" > /sys/class/backlight/nvidia_backlight/brightness
47
fi
48
 
49
# Check if oBacklight.def exists
50
if [ ! -e "/root/oBacklight.def" ]
51
 then
52
  echo "7" > /root/oBacklight.def
53
fi
54
}
55
 
56
start() {
57
 
58
/etc/init.d/oBacklight run &
59
 
60
}
61
 
62
stop() {
63
 
64
echo $(cat /sys/class/backlight/nvidia_backlight/brightness) > /root/oBacklight.def
65
killall -r oBacklight
66
 
67
}
68
 
69
run() {
70
 
71
GVAR=$(cat /root/oBacklight.def)
72
echo $GVAR > /sys/class/backlight/nvidia_backlight/brightness
73
 
74
if [ "$SCB" = "sony" ]
75
 then
76
 
77
  while [ exit != 130 ]
78
  do
79
 
80
  GVAR=$(cat /sys/class/backlight/nvidia_backlight/brightness)
81
 
82
  CMD=$(acpi_listen -c 1 | egrep -o " [0-9].+" | egrep -o "[0-9].+")
83
 
84
  # Brightness down acpi event
85
  if [ "$CMD" == "00000001 00000010" ]
86
   then
87
    if [ "$GVAR" != "0" ]
88
     then
89
      SVAR=$(($GVAR - 1))
90
      echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
91
      echo $SVAR > /root/oBacklight.def
92
    fi
93
  fi
94
 
95
  # Brightness up acpi event
96
  if [ "$CMD" == "00000001 00000011" ]
97
   then
98
    if [ "$GVAR" != "7" ]
99
     then
100
      SVAR=$(($GVAR + 1))
101
      echo $SVAR > /sys/class/backlight/nvidia_backlight/brightness
102
      echo $SVAR > /root/oBacklight.def
103
    fi
104
  fi
105
 
106
  # AC to battery change
107
  if [ "$CMD" == "00000081 00000000" ]
108
   then
109
    if [ "$GVAR" > "$BBL" ]
110
     then
111
      echo $BBL > /sys/class/backlight/nvidia_backlight/brightness
112
      echo $BBL > /root/oBacklight.def
113
    fi
114
  fi
115
 
116
  done
117
 
118
fi
119
 
120
}
121
 
122
case $1 in
123
start)
124
start
125
;;
126
stop)
127
stop
128
;;
129
run)
130
init
131
run
132
;;
133
*)
134
echo "start|stop|run"
135
;;
136
esac