#!/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 >= 100)) ) bar="━━━━━━━━━━" ;; $((strength >= 90)) ) bar="━━━━━━━━━─" ;; $((strength >= 80)) ) bar="━━━━━━━━──" ;; $((strength >= 70)) ) bar="━━━━━━━───" ;; $((strength >= 60)) ) bar="━━━━━━────" ;; $((strength >= 50)) ) bar="━━━━━─────" ;; $((strength >= 40)) ) bar="━━━━──────" ;; $((strength >= 30)) ) bar="━━━───────" ;; $((strength >= 20)) ) bar="━━────────" ;; $((strength >= 10)) ) bar="━─────────" ;; $((strength >= 0)) ) bar="──────────" ;; $((strength = 0)) ) bar="──────────" ;; esac echo "󰖩 $bar" 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 } # Run 'int' info=$(int) # 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 [ -e "$vpn" ] && info="$(printf "$info" | sed 's/󰛳//' | sed 's/󰖩//')" # Print $info printf "%s" "$info"