internet 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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}' | sed 's/unblocked//g' | uniq | wc -l)" -eq "1" ]; then
  8. if [ "$(rfkill | grep 'blocked' | awk '{print $4 $5}' | sed 's/unblocked//g' | grep . | wc -l)" -gt "0" ]; then
  9. echo "📡 off"; exit
  10. fi
  11. elif rfkill list wifi | grep 'Soft blocked' | awk '{print $3}' | grep -q 'yes'; then
  12. echo "📶 off"; exit
  13. fi
  14. fi
  15. printf "%s\\n" "🔌 $upstate"; exit
  16. else
  17. # alternatively: diplay percentage
  18. # awk '/^\s*w/ { print "📶", int($3 * 100 / 70) "%" }' \
  19. # /proc/net/wireless | sed 's/100/99/'
  20. percent=$(awk '/^\s*w/ { print int($3 * 100 / 70) }' \
  21. /proc/net/wireless | head -n 1)
  22. if [ "$percent" -gt 80 ];
  23. then
  24. echo "🟩🟩🟩🟩🟩"
  25. elif [ "$percent" -gt 60 ];
  26. then
  27. echo "🟩🟩🟩🟩🟧"
  28. elif [ "$percent" -gt 40 ];
  29. then
  30. echo "🟩🟩🟩🟧🟧"
  31. elif [ "$percent" -gt 20 ];
  32. then
  33. echo "🟩🟩🟧🟧🟧"
  34. else
  35. echo "🟩🟧🟧🟧🟧"
  36. fi
  37. fi