Files
NixOS-Configs/home/hypr/quickshell/scripts/get_wifi.sh

31 lines
883 B
Bash
Executable File

#!/usr/bin/env bash
# Read WiFi status
ssid=""
ip=""
if command -v nmcli &>/dev/null; then
active_line=$(nmcli -t -f active,ssid,signal dev wifi 2>/dev/null | grep '^yes' | head -n 1)
if [ -n "$active_line" ]; then
ssid=$(echo "$active_line" | cut -d':' -f2)
signal=$(echo "$active_line" | cut -d':' -f3)
fi
fi
if [ -z "$ssid" ]; then
# Fallback to iwgetid or /proc/net/wireless
if command -v iwgetid &>/dev/null; then
ssid=$(iwgetid -r 2>/dev/null)
fi
fi
# Get default IPv4
ip=$(ip -4 route get 1.1.1.1 2>/dev/null | awk '{print $7; exit}')
if [ -n "$ssid" ]; then
echo "{\"connected\": true, \"ssid\": \"$ssid\", \"ip\": \"${ip:-N/A}\"}"
elif [ -n "$ip" ]; then
echo "{\"connected\": true, \"ssid\": \"Ethernet\", \"ip\": \"$ip\"}"
else
echo "{\"connected\": false, \"ssid\": \"Not Connected\", \"ip\": \"None\"}"
fi