#!/usr/bin/env bash

toggle() {
  status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "wlan") | .soft' | head -1)

  if [ "$status" = "unblocked" ]; then
    rfkill block wlan
  else
    rfkill unblock wlan
  fi
}

if [ "$1" = "toggle" ]; then
  toggle
else
  while true; do
    status=$(nmcli g | tail -n 1 | awk '{print $1}')
    signal=$(nmcli -f in-use,signal dev wifi | rg "\*" | awk '{ print $2 }')
    essid=$(nmcli -t -f NAME connection show --active | head -n1)

    icons=("󰤯" "󰤟" "󰤢" "󰤥" "󰤨")

    if [ "$status" = "disconnected" ] ; then
      icon=""
      color="#988ba2"
    else
      level=$(awk -v n="$signal" 'BEGIN{print int((n-1)/20)}')
      if [ "$level" -gt 4 ]; then
        level=4
      fi

      icon=${icons[$level]}
      color="#cba6f7"
    fi

    echo '{ "essid": "'"$essid"'", "icon": "'"$icon"'", "color": "'"$color"'" }'

    sleep 3
  done
fi