summaryrefslogtreecommitdiff
path: root/.local/bin/statusbar/i3wifi
blob: 689e3a25521bed40942708d79667bbe2891bfc31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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"