Make bar come in quickly upon logging in rather than waiting

master
Miles Alan 5 years ago
parent 687d42cffb
commit da0b5cc933
  1. 65
      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

Loading…
Cancel
Save