dwm-bar for archlinux
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

42 lines
1.3 KiB

#!/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