#!/usr/bin/env bash # Genmon network applet — PNG icon + SSID label + hover details # Referred to as nm-applet NEXUS_ROOT="$(cd "$(dirname "$(realpath "$0")")/../.." && pwd)" ICON_DIR="$NEXUS_ROOT/assets/panel-icons" signal_icon() { local sig=$1 if [ "$sig" -ge 80 ]; then echo "${ICON_DIR}/network-wireless-signal-excellent.png" elif [ "$sig" -ge 60 ]; then echo "${ICON_DIR}/network-wireless-signal-good.png" elif [ "$sig" -ge 40 ]; then echo "${ICON_DIR}/network-wireless-signal-ok.png" elif [ "$sig" -ge 20 ]; then echo "${ICON_DIR}/network-wireless-signal-weak.png" else echo "${ICON_DIR}/network-wireless-signal-none.png" fi } # Determine the active uplink from the default route rather than NetworkManager's # connected state: the wired interface (t2_ncm) is unmanaged by NM and never # reports STATE=connected, so it would otherwise fall through to "offline". PRIMARY_IF=$(ip route show default 2>/dev/null | awk '/^default/{print $5; exit}') if [ -n "$PRIMARY_IF" ] && [ -d "/sys/class/net/$PRIMARY_IF/wireless" ]; then ACTIVE_TYPE=wifi elif [ -n "$PRIMARY_IF" ]; then ACTIVE_TYPE=ethernet else ACTIVE_TYPE= fi POPUP_OPEN=false [ -f /tmp/nexus-network-popup-visible ] && POPUP_OPEN=true if [[ "$ACTIVE_TYPE" == "wifi" ]]; then IFS=: read -r _ SSID SIGNAL < <(nmcli -t --escape no -f ACTIVE,SSID,SIGNAL dev wifi list --rescan no | grep '^yes') IP=$(nmcli -t --escape no -f IP4.ADDRESS dev show | grep -m1 'IP4.ADDRESS' | cut -d: -f2 | cut -d/ -f1) echo "$(signal_icon "${SIGNAL:-0}")" if $POPUP_OPEN; then echo "" else echo "Wireless SSID: ${SSID} Signal: ${SIGNAL}% IP: ${IP:-unknown}" fi echo "$HOME/.local/bin/network-popup.py" elif [[ "$ACTIVE_TYPE" == "ethernet" ]]; then # t2_ncm is unmanaged, so read the IP straight off the primary interface. IP=$(ip -4 -o addr show "$PRIMARY_IF" 2>/dev/null | awk '{print $4}' | cut -d/ -f1 | head -n1) echo "${ICON_DIR}/network-wired.png" if $POPUP_OPEN; then echo "" else echo "Wired (Ethernet) Interface: ${PRIMARY_IF:-unknown} IP: ${IP:-unknown}" fi echo "$HOME/.local/bin/network-popup.py" else echo "${ICON_DIR}/network-offline.png" if $POPUP_OPEN; then echo "" else echo "No active network connection" fi echo "$HOME/.local/bin/network-popup.py" fi