Files
dotfiles/eww/scripts/get-network.sh
2026-04-20 20:37:54 +02:00

27 lines
698 B
Bash

#!/usr/bin/env bash
# Outputs one of:
# offline
# wifi:<signal>%
# eth:<ip>
# Check ethernet first
ETH=$(ip -o link show | awk '$9=="UP" && $2!="lo:" {print $2}' | grep -v "^wl" | head -1 | tr -d ':')
if [[ -n "$ETH" ]]; then
IP=$(ip -4 addr show "$ETH" 2>/dev/null | awk '/inet /{print $2}' | cut -d/ -f1 | head -1)
if [[ -n "$IP" ]]; then
echo "eth:${IP}"
exit 0
fi
fi
# Check wifi
WIFI=$(ip -o link show | awk '$9=="UP" && $2~/^wl/ {print $2}' | tr -d ':' | head -1)
if [[ -n "$WIFI" ]]; then
SIGNAL=$(awk "/${WIFI}/{print int(\$3*100/70)}" /proc/net/wireless 2>/dev/null | head -1)
[[ -z "$SIGNAL" ]] && SIGNAL="?"
echo "wifi:${SIGNAL}%"
exit 0
fi
echo "offline"