aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/waybar/executable_wifi-status.sh
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-04-21 01:24:42 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-04-21 01:24:42 +0100
commitd48f8b442648eb837929b5d6538d7d75c4746899 (patch)
tree054f72bbf177c0caa276e9f8ac0a6e1742788421 /dot_config/waybar/executable_wifi-status.sh
parent95aed3ac22cf80205a2a18cd4b4410338893d066 (diff)
downloaddotfiles-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.sh19
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"