summaryrefslogtreecommitdiff
path: root/.local/bin/statusbar/i3wifi
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin/statusbar/i3wifi')
-rwxr-xr-x.local/bin/statusbar/i3wifi37
1 files changed, 37 insertions, 0 deletions
diff --git a/.local/bin/statusbar/i3wifi b/.local/bin/statusbar/i3wifi
new file mode 100755
index 0000000..689e3a2
--- /dev/null
+++ b/.local/bin/statusbar/i3wifi
@@ -0,0 +1,37 @@
+#!/bin/sh
+# i3block for the displaying the wifi connectivity level
+# If the wifi interface exists but no connection is active, "down" shall be displayed.
+
+case "$BLOCK_BUTTON" in
+ 1) $TERMINAL -e nmtui ;;
+ 2) $TERMINAL -e nvim "$0" ;;
+ 3) $TERMINAL -e nethogs ;;
+ # 3) echo "nethogs,$TERMINAL -e nethogs
+ # bmon,$TERMINAL -e bmon
+ # nmtui, $TERMINAL -e nmtui" | jgmenu --vsimple --at-pointer ;;
+esac
+
+iface="$(find /sys/class/net/ -maxdepth 1 -name "w*" -printf "%f\n")"
+if [ "$(cat "/sys/class/net/$iface/operstate")" = 'down' ]; then
+ icon="󰤭"; quality="down"; color="$BLOCK_COLOR_LEVEL5"
+else
+ quality=$(grep "$iface" /proc/net/wireless | awk '{ print int($3 * 100 / 70) }')
+ if [ "$quality" = 100 ]; then
+ icon="󰤨"; color="$BLOCK_COLOR_LEVEL1"
+ elif [ "$quality" -ge 80 ]; then
+ icon="󰤥"; color="$BLOCK_COLOR_LEVEL1"
+ elif [ "$quality" -ge 60 ]; then
+ icon="󰤢"; color="$BLOCK_COLOR_LEVEL2"
+ elif [ "$quality" -ge 40 ]; then
+ icon="󰤟"; color="$BLOCK_COLOR_LEVEL3"
+ elif [ "$quality" -ge 20 ]; then
+ icon="󰤟"; color="$BLOCK_COLOR_LEVEL4"
+ else
+ icon="󰤯"; color="$BLOCK_COLOR_LEVEL5"
+ fi
+ [ -n "$quality" ] && quality="$quality%"
+fi
+
+echo "$icon $quality"
+echo
+echo "$color"