OSDN Git Service

Merge pull request #81 from bob8677/master
[instantos/instantOS.git] / status.sh
index abafff9..87915da 100755 (executable)
--- a/status.sh
+++ b/status.sh
@@ -4,36 +4,47 @@
 ## status monitor for instantWM ##
 ##################################
 
+# will be rewritten soon
+
 INTERNET="X"
 date=""
 
-# append item with brackets
-addstatus() {
-    date="${date}[$@] "
+RED='#fc4138'
+GREEN='#52E067'
+DARKBACK='#3E485A'
+LIGHTBACK='#5B6579'
+
+istat() {
+    echo "$2" >/tmp/instantos/status/"$1"
 }
 
+mkdir -p /tmp/instantos/status
+
 # update different parts with different frequency
 
 # 1m loop
 while :; do
     if ping -q -c 1 -W 1 8.8.8.8; then
-        INTERNET="i"
+        INTERNET="^c$GREEN^  i  ^d^"
     else
-        INTERNET="^c#ff0000^X^d^"
+        INTERNET="^c$RED^  i  ^d^"
     fi
 
+    istat INTERNET "$INTERNET"
+
     # battery indicator on laptop
     if [ -n "$ISLAPTOP" ]; then
         TMPBAT=$(acpi)
         if [[ $TMPBAT =~ "Charging" ]]; then
-            BATTERY="^c#00ff00^B"$(egrep -o '[0-9]*%' <<<"$TMPBAT")"^d^"
+            BATTERY="^c$GREEN^  B"$(egrep -o '[0-9]*%' <<<"$TMPBAT")"  "
         else
-            BATTERY="B"$(egrep -o '[0-9]*%' <<<"$TMPBAT")
+            BATTERY="  B"$(egrep -o '[0-9]*%' <<<"$TMPBAT")"  "
             # make indicator red on low battery
-            if [ $(grep '[0-9]*' <<<$BATTERY) -lt 10 ]; then
-                BATTERY="^c#ff0000^$BATTERY^d^"
+            if [ $(grep '[0-9]*' <<<"$BATTERY") -lt 10 ]; then
+                BATTERY="^c$RED^  B$BATTERY  ^d^"
             fi
         fi
+        istat BATTERY "$BATTERY"
     fi
     sleep 1m
 
@@ -53,7 +64,27 @@ while :; do
             echo "system is up to date"
             unset UPDATES
         fi
+        istat UPDATES "U$UPDATES"
+    fi
+
+    if ! iconf -i notheming; then
+        DATEHOUR="$(date +%H)"
+        if [ "$DATEHOUR" -lt "7" ] || [ "$DATEHOUR" -gt "20" ]; then
+            if ! [ -e /tmp/instantdarkmode ]; then
+                instantthemes d &
+                touch /tmp/instantdarkmode
+                [ -e /tmp/instantlightmode ] && rm /tmp/instantlightmode
+            fi
+        else
+            if ! [ -e /tmp/instantlightmode ]; then
+                instantthemes l &
+                touch /tmp/instantlightmode
+                [ -e /tmp/instantdarkmode ] && rm /tmp/instantdarkmode
+
+            fi
+        fi
     fi
+
 done &
 
 sleep 2
@@ -61,24 +92,28 @@ sleep 2
 # 10 sec loop
 while :; do
 
-    # option to disable status text and check for enabling it again
-    if [ -e ~/.instantsilent ]; then
-        sleep 1m
-        continue
-    fi
+    for i in /tmp/instantos/status/*; do
+        date="${date}$(cat "$i")"
+    done
 
     # date time
-    addstatus "$(date +'%d-%m|%H:%M')"
+    date="$date^d^  $(date +'%d-%m')  ^c$DARKBACK^  $(date +'%H:%M')  "
     # volume
-    addstatus "A$(amixer get Master | egrep -o '[0-9]{1,3}%' | head -1)"
-
-    # 60 sec info
-    [ -n "$ISLAPTOP" ] && addstatus "B$BATTERY"
-    addstatus "$INTERNET"
-    [ -n "$UPDATES" ] && addstatus "U$UPDATES"
-    # add 11 px spacing
-    xsetroot -name "^f11^$date"
-    date=""
+    date="$date^c$LIGHTBACK^  A$(
+        {
+            amixer -D pulse get Master || amixer sget Master
+        } 2>/dev/null |
+            grep -Eo -m1 '1?[0-9]{1,2}%'
+    )  "
 
+    # option to disable status text
+    if [ -e ~/.instantsilent ] && [ -z "$FORCESTATUS" ]; then
+        echo "^d^^f11^$date^d^"
+    else
+        # add 11 px spacing
+        xsetroot -name "^d^^f11^$date^d^"
+    fi
+
+    date=""
     sleep 10
 done