internet 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/sh
  2. # script to display the network state in dwmblocks
  3. wifi=$(iwgetid -r)
  4. upstate=$(ip a | grep BROADCAST,MULTICAST | awk '{print $9}')
  5. if [ -z "$wifi" ]; then
  6. if echo "$upstate" | grep -q "DOWN"; then
  7. if [ "$(rfkill | grep 'blocked' | awk '{print $4 $5}' | \
  8. sed 's/unblocked//g' | uniq | wc -l)" -eq "1" ]; then
  9. if [ "$(rfkill | grep 'blocked' | awk '{print $4 $5}' | \
  10. sed 's/unblocked//g' | grep . | wc -l)" -gt "0" ]; then
  11. echo "📡 off"; exit
  12. fi
  13. elif rfkill list wifi | grep 'Soft blocked' | awk '{print $3}' | \
  14. grep -q 'yes'; then
  15. echo "📶 off"; exit
  16. fi
  17. fi
  18. printf "%s\\n" "🔌 $upstate"; exit
  19. else
  20. # alternatively: diplay percentage
  21. # awk '/^\s*w/ { print "📶", int($3 * 100 / 70) "%" }' \
  22. # /proc/net/wireless | sed 's/100/99/'
  23. percent=$(awk '/^\s*w/ { print int($3 * 100 / 70) }' \
  24. /proc/net/wireless | head -n 1)
  25. if [ "$percent" -gt 80 ]; then
  26. echo "🟩🟩🟩🟩🟩"
  27. elif [ "$percent" -gt 60 ]; then
  28. echo "🟩🟩🟩🟩🟧"
  29. elif [ "$percent" -gt 40 ]; then
  30. echo "🟩🟩🟩🟧🟧"
  31. elif [ "$percent" -gt 20 ]; then
  32. echo "🟩🟩🟧🟧🟧"
  33. else
  34. echo "🟩🟧🟧🟧🟧"
  35. fi
  36. fi