3 ( test -e /tmp/op_power.lock && exit 2 ) || touch "/tmp/op_power.lock"
6 return 1 # 0 when debugging, 1 when not
9 test -e $(grep /etc/passwd -e $(ps u -C xfce4-session | tail -n1 | awk '{print $1}')| cut -f 6 -d ":")/.lidconfig && lidconfig=$(cat $(grep /etc/passwd -e $(ps u -C xfce4-session | tail -n1 | awk '{print $1}')| cut -f 6 -d ":")/.lidconfig) # read lid conf. file if it exists
11 #powerbuttonconfig=$(cat $(grep /etc/passwd -e $(ps u -C xfce4-session | tail -n1 | awk '{print $1}')| cut -f 6 -d ":")/.powerbuttonconfig)
13 if [ -e /tmp/powerstate ]; then
14 powerstate="$(cat /tmp/powerstate)"
19 debug && echo "powerstate=$powerstate"
21 lowPowerOn(){ #switch from normal to lowpower mode
22 cat /proc/pandora/cpu_mhz_max > /tmp/oldspeed
23 cat /sys/devices/platform/twl4030-pwm0-bl/backlight/twl4030-pwm0-bl/brightness > /tmp/oldbright
24 pidlist=$(pstree -lpA | grep pnd_run.sh | sed -ne 's/.*(\([0-9]\+\))/\1/p')
27 kill -19 $PID #send SIGSTOP
30 hcistate=$(hciconfig hci0 | grep DOWN)
31 if [ $hcistate ]; then
32 echo "down" > /tmp/hcistate
37 wlstate=$(lsmod | grep -m1 wl1251)
38 if [ ! $wlstate ]; then
39 echo "down" > /tmp/wlstate
42 rmmod board_omap3pandora_wifi wl1251_sdio wl1251
44 echo 0 > /sys/devices/platform/twl4030-pwm0-bl/backlight/twl4030-pwm0-bl/brightness
45 echo 1 > /sys/devices/platform/omapfb/graphics/fb0/blank
46 echo 16 > /sys/class/leds/pandora\:\:power/brightness #dim power LED
47 /usr/pandora/scripts/op_cpuspeed.sh 125
50 lowPowerOff(){ # switch from lowpower to normal mode
51 oldspeed=$(cat /tmp/oldspeed)
52 /usr/pandora/scripts/op_cpuspeed.sh $oldspeed
53 oldbright=$(cat /tmp/oldbright)
54 maxbright=$(cat /sys/devices/platform/twl4030-pwm0-bl/backlight/twl4030-pwm0-bl/max_brightness)
55 echo 0 > /sys/devices/platform/omapfb/graphics/fb0/blank
56 sleep 0.1s # looks cleaner, could flicker without
57 oldspeed=$(cat /tmp/oldspeed)
58 if [ $oldbright -ge 3 ] && [ $oldbright -le $maxbright ]; then
59 /usr/pandora/scripts/op_bright.sh $oldbright
61 /usr/pandora/scripts/op_bright.sh $maxbright
63 hcistate=$(cat /tmp/hcistate)
64 if [ ! $hcistate ]; then
65 hciconfig hci0 up pscan
67 wlstate=$(cat /tmp/wlstate)
68 if [ ! $wlstate ]; then
69 /etc/init.d/wl1251-init start
71 pidlist=$(pstree -lpA | grep pnd_run.sh | sed -ne 's/.*(\([0-9]\+\))/\1/p')
74 kill -18 $PID #send SIGCONT
76 echo 255 > /sys/class/leds/pandora\:\:power/brightness #power LED bright
79 shutdown(){ # warns the user and shuts the pandora down
80 xfceuser=$(ps u -C xfce4-session | tail -n1 | awk '{print $1}')
83 for i in $(seq $time); do
84 precentage=$(echo $i $time | awk '{ printf("%f\n", $1/$2*100) }')
86 echo "# Shutdown in $(($time-$i))"
90 countdown | su -c 'DISPLAY=:0.0 zenity --progress --auto-close --text "Shutdown in X" --title "Shutdown"' $xfceuser
94 su -c 'DISPLAY=:0.0 zenity --error --text "Shutdown aborted!"' $xfceuser
98 displayOn(){ # turns the display on
99 #echo 0 > /sys/devices/platform/omapfb/graphics/fb0/blank
100 #sleep 0.1s # looks cleaner, could flicker without
101 maxbright=$(cat /sys/devices/platform/twl4030-pwm0-bl/backlight/twl4030-pwm0-bl/max_brightness)
103 if [ -f /tmp/oldbright ]; then
104 oldbright=$(cat /tmp/oldbright)
106 if [ $oldbright -eq 0 ]; then
107 oldbright=$(cat /etc/pandora/conf/brightness.state)
109 if [ $oldbright -ge 3 ] && [ $oldbright -le $maxbright ]; then
110 /usr/pandora/scripts/op_bright.sh $oldbright
112 /usr/pandora/scripts/op_bright.sh $maxbright
116 displayOff(){ # turns the display off
117 brightness=$(cat /sys/devices/platform/twl4030-pwm0-bl/backlight/twl4030-pwm0-bl/brightness)
118 if [ $brightness -gt 0 ]; then
119 echo $brightness > /tmp/oldbright
121 echo 0 > /sys/devices/platform/twl4030-pwm0-bl/backlight/twl4030-pwm0-bl/brightness
122 #echo 1 > /sys/devices/platform/omapfb/graphics/fb0/blank
125 if [[ "$2" == "" ]]; then
126 if [[ "$1" -le 2 ]]; then # power button was pressed 1-2sec, "suspend"
127 if [[ "$powerstate" == "buttonlowpower" ]]; then
128 (debug && echo "lowPowerOff") || lowPowerOff
130 elif [[ "$powerstate" == "on" ]]; then
131 (debug && echo "lowPowerOn") || lowPowerOn
132 powerstate="buttonlowpower"
134 elif [[ "$1" -ge 3 ]]; then # power button was pressed 3 sec or longer, shutdown
135 if [[ "$powerstate" == "on" ]]; then
136 (debug && echo "shutdown") || shutdown
139 elif [[ "$2" == "lid" ]]; then
140 if [[ "$1" == 0 ]]; then # lid was opened
141 if [[ "$powerstate" == lid* ]]; then
144 (debug && echo "lowPowerOff") || lowPowerOff
148 (debug && echo "displayOn") || displayOn
153 elif [[ "$1" == 1 ]]; then # lid was closed
154 if [[ "$powerstate" == "on" ]]; then
157 (debug && echo "shutdown") || shutdown
160 (debug && echo "lowPowerOn") || lowPowerOn
161 powerstate="lidlowpower"
164 (debug && echo "displayOff") || displayOff
165 powerstate="liddisplayoff"
171 debug && echo "powerstate=$powerstate"
172 echo "$powerstate" > /tmp/powerstate