92 lines
1.9 KiB
Bash
Executable File
92 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
. ../mpanel.subr
|
|
. ../aux/secrets
|
|
|
|
align="right"
|
|
background="$(color 11)"
|
|
foreground="$(color 3)"
|
|
|
|
waitFunc="sleep 1"
|
|
clickFunc="toggle flag"
|
|
|
|
flag="true"
|
|
|
|
connected() {
|
|
state="$(iwctl station $wifi_if show | grep State | awk '{print $2}')"
|
|
|
|
[ "$state" = "connected" ] && return 0
|
|
return 1
|
|
}
|
|
|
|
internet() {
|
|
if nc -zw1 google.com 443; then
|
|
return 0
|
|
fi
|
|
|
|
return 1
|
|
}
|
|
|
|
vpn() {
|
|
if ping -c 1 -w 5 $vpn_ip >/dev/null 2>&1; then
|
|
return 0
|
|
fi
|
|
|
|
return 1
|
|
}
|
|
|
|
home() {
|
|
if ping -c 1 -w 5 $home_ip >/dev/null 2>&1; then
|
|
return 0
|
|
fi
|
|
|
|
return 1
|
|
}
|
|
|
|
store_speeds() {
|
|
R1="$(cat /sys/class/net/$wifi_if/statistics/rx_bytes)"
|
|
T1="$(cat /sys/class/net/$wifi_if/statistics/tx_bytes)"
|
|
sleep 1
|
|
R2="$(cat /sys/class/net/$wifi_if/statistics/rx_bytes)"
|
|
T2="$(cat /sys/class/net/$wifi_if/statistics/tx_bytes)"
|
|
|
|
r="$(echo $R1 $R2 | awk '{r=$2-$1 ; rSuf="B " ; if (r >= 1000) {r=r/1000; rSuf="KB";} if (r >= 1000) {r=r/1000; rSuf="MB";} printf "%3.0f", r; printf rSuf;}')"
|
|
t="$(echo $T1 $T2 | awk '{t=$2-$1 ; tSuf="B " ; if (t >= 1000) {t=t/1000; tSuf="KB";} if (t >= 1000) {t=t/1000; tSuf="MB";} printf "%3.0f", t; printf tSuf;}')"
|
|
|
|
echo " $r 祝$t" | atomic_write "$XDG_RUNTIME_DIR/wifi-speeds.tmp"
|
|
}
|
|
|
|
store_symbol() {
|
|
if connected; then
|
|
if internet; then
|
|
if vpn; then
|
|
out="直"
|
|
elif home; then
|
|
out=""
|
|
else
|
|
out=""
|
|
fi
|
|
else
|
|
out=""
|
|
fi
|
|
else
|
|
out="睊"
|
|
fi
|
|
|
|
echo "$out" | atomic_write "$XDG_RUNTIME_DIR/wifi-symbol.tmp"
|
|
}
|
|
|
|
|
|
print_stats() {
|
|
if [ "$flag" = "true" ]; then
|
|
echo " $(cat "$XDG_RUNTIME_DIR/wifi-symbol.tmp")$(cat "$XDG_RUNTIME_DIR/wifi-speeds.tmp") "
|
|
else
|
|
echo " $(cat "$XDG_RUNTIME_DIR/wifi-symbol.tmp") "
|
|
fi
|
|
}
|
|
|
|
kickoff store_speeds &
|
|
kickoff store_symbol 5 &
|
|
|
|
loop print_stats
|