|
|
@ -0,0 +1,42 @@ |
|
|
|
#!/bin/sh |
|
|
|
|
|
|
|
# A dwm_bar function to show the current network connection/SSID, Wifi Strength, private IP using Connmanctl. |
|
|
|
# procrastimax <heykeroth.dev@gmail.com> |
|
|
|
# GNU GPLv3 |
|
|
|
|
|
|
|
# Dependencies: connman |
|
|
|
|
|
|
|
dwm_connman () { |
|
|
|
printf "%s" "$SEP1" |
|
|
|
if [ "$IDENTIFIER" = "unicode" ]; then |
|
|
|
printf "🌐 " |
|
|
|
else |
|
|
|
printf "NET " |
|
|
|
fi |
|
|
|
|
|
|
|
# get the connmanctl service name |
|
|
|
# this is a UID starting with 'vpn_', 'wifi_', or 'ethernet_', we dont care for the vpn one |
|
|
|
# if the servicename string is empty, there is no online connection |
|
|
|
SERVICENAME=$(connmanctl services | grep -E "^\*AO|^\*O" | grep -Eo 'wifi_.*|ethernet_.*') |
|
|
|
|
|
|
|
if [ ! "$SERVICENAME" ]; then |
|
|
|
printf "OFFLINE" |
|
|
|
printf "%s\n" "$SEP2" |
|
|
|
return |
|
|
|
else |
|
|
|
STRENGTH=$(connmanctl services "$SERVICENAME" | sed -n -e 's/Strength =//p' | tr -d ' ') |
|
|
|
CONNAME=$(connmanctl services "$SERVICENAME" | sed -n -e 's/Name =//p' | tr -d ' ') |
|
|
|
IP=$(connmanctl services "$SERVICENAME" | grep 'IPv4 =' | awk '{print $5}' | sed -n -e 's/Address=//p' | tr -d ',') |
|
|
|
fi |
|
|
|
|
|
|
|
# if STRENGTH is empty, we have a wired connection |
|
|
|
if [ "$STRENGTH" ]; then |
|
|
|
printf "%s %s %s%%" "$IP" "$CONNAME" "$STRENGTH" |
|
|
|
else |
|
|
|
printf "%s %s" "$IP" "$CONNAME" |
|
|
|
fi |
|
|
|
|
|
|
|
printf "%s\n" "$SEP2" |
|
|
|
} |
|
|
|
|
|
|
|
dwm_connman |