summaryrefslogtreecommitdiff
path: root/.local/bin/statusbar/netinfo
blob: d59ef05d89112999d3ebb59c228fe8143ca2aff8 (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
#!/usr/bin/env sh

netstatus="$(awk '{
      n = split(FILENAME, a, "/")
      printf("%-15s %s\n", a[n-1], $1)
    }' /sys/class/net/[ew]*/operstate | sort -k 2)"

function add_connected_address() {
  TMPIFS=$IFS
  IFS='
'
  for line in $netstatus; do
    device=$(echo $line | awk '{print $1}')
    address=$(ip addr show $device | sed -En 's/inet ([0-9\.]+).*/\1/p')
    # Append Wifi AP if connected
    [ -n "$address" ] && address=$address" ("$(iwgetid -r)")"
    echo $line $address
  done
  IFS=$TMPIFS
}

ARG=${1:-$BLOCK_BUTTON}

case $ARG in
  1) notify-send --urgency=low "Internet connection" "$(add_connected_address)" ;;
esac

if [ -z "$(echo -e "${netstatus}" | sed -En '/up$/p' | tr -d '\n')" ]; then
  echo -en '\x0c'
else
  echo -n "${netstatus}" | sed -En 's/^(w[^ ]+).*up//p;s/^(e[^ ]+).*up/\x0d/p'
fi

echo -en '\x0b'