diff --git a/scripts/core/sxmo_statusbar.sh b/scripts/core/sxmo_statusbar.sh index 41b6723..80f431b 100755 --- a/scripts/core/sxmo_statusbar.sh +++ b/scripts/core/sxmo_statusbar.sh @@ -1,39 +1,44 @@ #!/usr/bin/env sh pgrep -f sxmo_statusbar.sh | grep -v $$ | xargs kill -9 -sleep 1 UPDATEFILE=/tmp/sxmo_bar touch $UPDATEFILE +update() { + # M symbol if modem monitoring is on & modem present + MODEMMON="" + pgrep -f sxmo_modemmonitor.sh && MODEMMON="M " + + # Battery pct + PCT=$(cat /sys/class/power_supply/*-battery/capacity) + BATSTATUS=$( + cat /sys/class/power_supply/*-battery/status | + cut -c1 + ) + + # Volume + AUDIODEV="$(sxmo_audiocurrentdevice.sh)" + [[ $AUDIODEV == "None" ]] && VOL="" || VOL=$(echo "$AUDIODEV" | cut -c1 | tr L S)"$( + amixer sget "$AUDIODEV" | + grep -oE '([0-9]+)%' | + tr -d ' %' | + awk '{ s += $1; c++ } END { print s/c }' | + xargs printf %.0f + )" + + # Time + TIME=$(date +%R) + + BAR=" ${MODEMMON}${VOL} ${BATSTATUS}${PCT}% ${TIME}" + xsetroot -name "$BAR" +} + +# E.g. on first boot justs to make sure the bar comes in quickly +update && sleep 1 && update && sleep 1 && update + while : do - # M symbol if modem monitoring is on & modem present - MODEMMON="" - pgrep -f sxmo_modemmonitor.sh && MODEMMON="M " - - # Battery pct - PCT=$(cat /sys/class/power_supply/*-battery/capacity) - BATSTATUS=$( - cat /sys/class/power_supply/*-battery/status | - cut -c1 - ) - - # Volume - AUDIODEV="$(sxmo_audiocurrentdevice.sh)" - [[ $AUDIODEV == "None" ]] && VOL="" || VOL=$(echo "$AUDIODEV" | cut -c1 | tr L S)"$( - amixer sget "$AUDIODEV" | - grep -oE '([0-9]+)%' | - tr -d ' %' | - awk '{ s += $1; c++ } END { print s/c }' | - xargs printf %.0f - )" - - # Time - TIME=$(date +%R) - - BAR=" ${MODEMMON}${VOL} ${BATSTATUS}${PCT}% ${TIME}" - xsetroot -name "$BAR" - - inotifywait -e MODIFY $UPDATEFILE & sleep 30 & wait -n - pgrep -P $$ | xargs kill -9 + update + inotifywait -e MODIFY $UPDATEFILE & sleep 30 & wait -n + pgrep -P $$ | xargs kill -9 done