OSDN Git Service

fix pasink
[instantos/instantOS.git] / status.sh
1 #!/bin/bash
2
3 ##################################
4 ## status monitor for instantWM ##
5 ##################################
6
7 INTERNET="X"
8 date=""
9
10 # append item with brackets
11 addstatus() {
12     date="${date}[$@] "
13 }
14
15 # update different parts with different frequency
16
17 # 1m loop
18 while :; do
19     if ping -q -c 1 -W 1 8.8.8.8; then
20         INTERNET="i"
21     else
22         INTERNET="^c#ff0000^X^d^"
23     fi
24
25     # battery indicator on laptop
26     if [ -n "$ISLAPTOP" ]; then
27         TMPBAT=$(acpi)
28         if [[ $TMPBAT =~ "Charging" ]]; then
29             BATTERY="^c#00ff00^B"$(egrep -o '[0-9]*%' <<<"$TMPBAT")"^d^"
30         else
31             BATTERY="B"$(egrep -o '[0-9]*%' <<<"$TMPBAT")
32             # make indicator red on low battery
33             if [ $(grep '[0-9]*' <<<$BATTERY) -lt 10 ]; then
34                 BATTERY="^c#ff0000^$BATTERY^d^"
35             fi
36         fi
37     fi
38     sleep 1m
39
40     # needed only for shorttime cache, remove in case it changes
41     [ -e /tmp/instantos/pasink ] && rm /tmp/instantos/pasink
42 done &
43
44 # 30m loop
45 while :; do
46     sleep 30m
47     # check for pacman updates
48     if [ "$INTERNET" = "i" ]; then
49         if UPDATES=$(checkupdates); then
50             echo "$UPDATES updates found"
51             UPDATES=$(wc -l <<<"$UPDATES")
52         else
53             echo "system is up to date"
54             unset UPDATES
55         fi
56     fi
57 done &
58
59 sleep 2
60
61 # 10 sec loop
62 while :; do
63
64     # option to disable status text and check for enabling it again
65     if [ -e ~/.instantsilent ]; then
66         sleep 1m
67         continue
68     fi
69
70     # date time
71     addstatus "$(date +'%d-%m|%H:%M')"
72     # volume
73     addstatus "A$(amixer get Master | egrep -o '[0-9]{1,3}%' | head -1)"
74
75     # 60 sec info
76     [ -n "$ISLAPTOP" ] && addstatus "B$BATTERY"
77     addstatus "$INTERNET"
78     [ -n "$UPDATES" ] && addstatus "U$UPDATES"
79     # add 11 px spacing
80     xsetroot -name "^f11^$date"
81     date=""
82
83     sleep 10
84 done