#!/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=" $speed ${eth%%/*}"
eth_status=" $speed"
fi
ssid="$(iw dev $dev_wifi link | grep -i SSID)"
if [ -n "$ssid" ]
then
signal="$(iw dev $dev_wifi station dump | egrep '[^ ]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=" $wifi_icon ${signal}% ${ssid##*SSID: }"
fi
vpn="$(ip -o address | grep -i "$dev_vpn *inet ")"
if [ -n "$vpn" ]
then
#vpn="${vpn##*inet }"
#vpn_status=" ${vpn%%/*}"
vpn_status=" "
color=$green
else
vpn_status=" "
fi
echo "${vpn_status}$icon${connectivity##*full}$wifi_status$eth_status"
# vim: ft=sh:expandtab:ts=4:shiftwidth=4