diff options
| author | 2026-04-21 01:24:42 +0100 | |
|---|---|---|
| committer | 2026-04-21 01:24:42 +0100 | |
| commit | d48f8b442648eb837929b5d6538d7d75c4746899 (patch) | |
| tree | 054f72bbf177c0caa276e9f8ac0a6e1742788421 /dot_config/waybar/executable_wifi-status.sh | |
| parent | 95aed3ac22cf80205a2a18cd4b4410338893d066 (diff) | |
| download | dotfiles-d48f8b442648eb837929b5d6538d7d75c4746899.tar.gz dotfiles-d48f8b442648eb837929b5d6538d7d75c4746899.tar.bz2 dotfiles-d48f8b442648eb837929b5d6538d7d75c4746899.zip | |
waybar: custom/wifi via iw for bond-slaved wlan; drop wg; shorter memory
Diffstat (limited to 'dot_config/waybar/executable_wifi-status.sh')
| -rw-r--r-- | dot_config/waybar/executable_wifi-status.sh | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/dot_config/waybar/executable_wifi-status.sh b/dot_config/waybar/executable_wifi-status.sh new file mode 100644 index 0000000..082551f --- /dev/null +++ b/dot_config/waybar/executable_wifi-status.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# Emit waybar JSON describing wifi link state. Handles bond-slaved wlan +# interfaces where waybar's built-in network module fails to detect wifi. +set -eu + +iface=wlan0 +link=$(iw dev "$iface" link 2>/dev/null || true) + +if [ -z "$link" ] || [ "$link" = "Not connected." ]; then + printf '{"text":"wifi off","class":"down"}\n' + exit 0 +fi + +ssid=$(printf '%s\n' "$link" | awk -F': ' '/^\tSSID:/{print $2; exit}') +dbm=$(printf '%s\n' "$link" | awk '/signal:/{print $2; exit}') +pct=$(awk -v r="${dbm:-0}" 'BEGIN{p=2*(r+100); if(p>100)p=100; if(p<0)p=0; printf "%d",p}') + +printf '{"text":"%s %s%%","class":"up","tooltip":"%s ยท %s dBm"}\n' \ + "$ssid" "$pct" "$iface" "$dbm" |
