diff options
Diffstat (limited to '.local/bin/statusbar/i3wifi')
-rwxr-xr-x | .local/bin/statusbar/i3wifi | 37 |
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" |