#!/bin/sh int() { # Type of interface & status # If active ethernet, just exit with icon grep -xq 'up' /sys/class/net/e*/operstate 2>/dev/null && echo "󰛳" && return 0 # If active WiFi, print link strength if grep -xq 'up' /sys/class/net/w*/operstate 2>/dev/null ; then strength="$(awk 'NR==3 {printf("%.0f\n",$3*10/7)}' /proc/net/wireless)" case 1 in $((strength >= 85)) ) icon="󰤨" ;; $((strength >= 65)) ) icon="󰤥" ;; $((strength >= 45)) ) icon="󰤢" ;; $((strength >= 25)) ) icon="󰤟" ;; $((strength >= 0)) ) icon="󰤯" ;; esac echo "$icon" return 0 fi # If down interfaces, exit with icon grep -xq 'down' /sys/class/net/w*/operstate 2>/dev/null && echo "󰤮" && return 0 grep -xq 'down' /sys/class/net/e*/operstate 2>/dev/null && echo "󰲛" && return 0 return 1 } # Run 'int' icon=$(int) if [ "$?" != 0 ] ; then echo "Failed to get interface type" exit 1 fi # Check if a VPN is enabled vpn="$( \ sed "s/.*//" /sys/class/net/tun*/operstate 2>/dev/null sed "s/.*//" /sys/class/net/wg*/operstate 2>/dev/null \ )" # If so, change icon if [ -n "$vpn" ] ; then icon="$(printf '%s' "$icon" | sed ' s/󰤨/󰤪/; s/󰤥/󰤧/; s/󰤢/󰤤/; s/󰤟/󰤡/; s/󰤯/󰤬/; ')" fi # Print $info printf "%s" "$icon"