88 lines
2.2 KiB
Bash
Executable File
88 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
dev_wifi=$(cat "$HOME"/.config/xmobar/dev_wifi)
|
|
dev_eth=$(cat "$HOME"/.config/xmobar/dev_eth)
|
|
dev_vpn=$(cat "$HOME"/.config/xmobar/dev_vpn)
|
|
|
|
# base03=#002b36
|
|
# base02=#073642
|
|
# base01=#586e75
|
|
# base00=#657b83
|
|
# base0=#839496
|
|
# base1=#93a1a1
|
|
# base2=#eee8d5
|
|
# base3=#fdf6e3
|
|
yellow=#b58900
|
|
# orange=#cb4b16
|
|
red=#dc322f
|
|
magenta=#d33682
|
|
# violet=#6c71c4
|
|
# blue=#268bd2
|
|
# cyan=#2aa198
|
|
green=#859900
|
|
|
|
# connectivity status
|
|
# states are:
|
|
# none (no connectivity)
|
|
# portal (behind captive portal)
|
|
# limited (connected to network but no internet access)
|
|
# full (full internet connectivity)
|
|
# unknown
|
|
|
|
std_color=$magenta
|
|
wifi_icon=""
|
|
|
|
connectivity="$(nmcli networking connectivity)"
|
|
|
|
case $connectivity in
|
|
none) color=$red; icon="" ;; # f056 fa-minus-circle
|
|
portal) color=$yellow; icon="" ;; # f05c fa-times-circle-o
|
|
limited) color=$yellow; icon="" ;; # f01b fa-arrow-circle-o-up
|
|
full) color=$std_color; icon="" ;; # f0aa fa-arrow-circle-up
|
|
*) color=$red; icon="" ;; # f29c fa-question-circle-o
|
|
esac
|
|
|
|
eth="$(ip -o address | grep -i "$dev_eth *inet ")"
|
|
if [ -n "$eth" ]
|
|
then
|
|
#eth="${eth##*inet }"
|
|
speed="$(cat /sys/class/net/"$dev_eth"/speed)"
|
|
case $speed in
|
|
10) speed="10Base-T" ;;
|
|
100) speed="100Base-T" ;;
|
|
1000) speed="Gigabit" ;;
|
|
*) speed="UNKNOWN $speed" ;;
|
|
esac
|
|
#eth_status=" <fn=1></fn> $speed ${eth%%/*}"
|
|
eth_status=" <fn=1> </fn> $speed"
|
|
fi
|
|
|
|
ssid="$(iw dev "$dev_wifi" link | grep -i SSID)"
|
|
if [ -n "$ssid" ]
|
|
then
|
|
signal="$(iw dev "$dev_wifi" station dump | grep -E '[^ ]signal avg')"
|
|
signal="${signal#*-}"
|
|
signal="${signal%% *}"
|
|
signal="$((2*(100-signal)))"
|
|
|
|
signal=$((signal/5*5)) # get rid of some jitter
|
|
((signal > 100)) && signal=100
|
|
wifi_status=" <fn=1>$wifi_icon </fn> <fc=$green>${signal}</fc>% ${ssid##*SSID: }"
|
|
fi
|
|
|
|
vpn="$(ip -o address | grep -i "$dev_vpn *inet ")"
|
|
if [ -n "$vpn" ]
|
|
then
|
|
#vpn="${vpn##*inet }"
|
|
#vpn_status="<fn=1></fn> ${vpn%%/*}"
|
|
vpn_status="<fn=1> </fn> "
|
|
color=$green
|
|
else
|
|
vpn_status="<fn=1> </fn> "
|
|
fi
|
|
|
|
echo "<fc=$color>${vpn_status}<fn=1>$icon </fn>${connectivity##*full}$wifi_status$eth_status</fc>"
|
|
|
|
|
|
# vim: ft=sh:expandtab:ts=4:shiftwidth=4
|