network 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/bash
  2. DIR="$HOME/.config/bspwm"
  3. rofi_command="rofi -theme $DIR/rofi/themes/network.rasi"
  4. ## Get info
  5. IFACE="$(nmcli | grep -i interface | awk '/interface/ {print $2}')"
  6. #SSID="$(iwgetid -r)"
  7. #LIP="$(nmcli | grep -i server | awk '/server/ {print $2}')"
  8. #PIP="$(dig +short myip.opendns.com @resolver1.opendns.com )"
  9. STATUS="$(nmcli radio wifi)"
  10. active=""
  11. urgent=""
  12. if (ping -c 1 archlinux.org || ping -c 1 google.com || ping -c 1 bitbucket.org || ping -c 1 github.com || ping -c 1 sourceforge.net) &>/dev/null; then
  13. if [[ $STATUS == *"enable"* ]]; then
  14. if [[ $IFACE == e* ]]; then
  15. connected=""
  16. else
  17. connected=""
  18. fi
  19. active="-a 0"
  20. SSID="$(iwgetid -r)"
  21. PIP="$(wget --timeout=30 http://ipinfo.io/ip -qO -)"
  22. fi
  23. else
  24. urgent="-u 0"
  25. SSID="Disconnected"
  26. PIP="NA"
  27. connected=""
  28. fi
  29. ## Icons
  30. bmon=""
  31. launch_cli=""
  32. launch=""
  33. options="$connected\n$bmon\n$launch_cli\n$launch"
  34. ## Main
  35. chosen="$(echo -e "$options" | $rofi_command -p "$SSID : $PIP" -dmenu $active $urgent -selected-row 1)"
  36. case $chosen in
  37. $connected)
  38. if [[ $STATUS == *"enable"* ]]; then
  39. nmcli radio wifi off
  40. else
  41. nmcli radio wifi on
  42. fi
  43. ;;
  44. $bmon)
  45. alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e bmon
  46. ;;
  47. $launch_cli)
  48. alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e nmtui
  49. ;;
  50. $launch)
  51. nm-connection-editor
  52. ;;
  53. esac