aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/waybar/executable_wg-status.sh
diff options
context:
space:
mode:
Diffstat (limited to 'dot_config/waybar/executable_wg-status.sh')
-rw-r--r--dot_config/waybar/executable_wg-status.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/dot_config/waybar/executable_wg-status.sh b/dot_config/waybar/executable_wg-status.sh
new file mode 100644
index 0000000..1fd7241
--- /dev/null
+++ b/dot_config/waybar/executable_wg-status.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+# Emit waybar JSON describing wireguard status. Uses `ip` (no root needed).
+set -eu
+
+iface=$(ip -br link show type wireguard 2>/dev/null | awk 'NF{print $1; exit}')
+
+if [ -n "${iface:-}" ]; then
+ printf '{"text":"WG %s","class":"up","tooltip":"%s"}\n' \
+ "$iface" \
+ "$(ip -br -4 addr show dev "$iface" 2>/dev/null | awk '{for(i=3;i<=NF;i++)printf "%s ",$i}')"
+else
+ printf '{"text":"WG off","class":"down","tooltip":"no wireguard interface"}\n'
+fi