1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/bin/sh
- # script to display the network state in dwmblocks
- wifi=$(iwgetid -r)
- upstate=$(ip a | grep BROADCAST,MULTICAST | awk '{print $9}')
- if [ -z "$wifi" ]; then
- if echo "$upstate" | grep -q "DOWN"; then
- if [ "$(rfkill | grep 'blocked' | awk '{print $4 $5}' | \
- sed 's/unblocked//g' | uniq | wc -l)" -eq "1" ]; then
- if [ "$(rfkill | grep 'blocked' | awk '{print $4 $5}' | \
- sed 's/unblocked//g' | grep . | wc -l)" -gt "0" ]; then
- echo "📡 off"; exit
- fi
- elif rfkill list wifi | grep 'Soft blocked' | awk '{print $3}' | \
- grep -q 'yes'; then
- echo "📶 off"; exit
- fi
- fi
- printf "%s\\n" "🔌 $upstate"; exit
- else
- # alternatively: diplay percentage
- # awk '/^\s*w/ { print "📶", int($3 * 100 / 70) "%" }' \
- # /proc/net/wireless | sed 's/100/99/'
- percent=$(awk '/^\s*w/ { print int($3 * 100 / 70) }' \
- /proc/net/wireless | head -n 1)
- if [ "$percent" -gt 80 ]; then
- echo "🟩🟩🟩🟩🟩"
- elif [ "$percent" -gt 60 ]; then
- echo "🟩🟩🟩🟩🟧"
- elif [ "$percent" -gt 40 ]; then
- echo "🟩🟩🟩🟧🟧"
- elif [ "$percent" -gt 20 ]; then
- echo "🟩🟩🟧🟧🟧"
- else
- echo "🟩🟧🟧🟧🟧"
- fi
- fi
|