#!/bin/sh # Shows status of wifi and ethernet connections. # Depends on nmcli and ip for IPs case $BLOCK_BUTTON in 1) i3-msg "exec urxvt -title "floating" -e nmtui" >/dev/null ;; esac wifiDev="wlp2s0" ethDev="enp3s0" wstatus=$(cat /sys/class/net/$wifiDev/operstate) estatus=$(cat /sys/class/net/$ethDev/operstate) if [ "$wstatus" = "down" ]; then wifi="❌" elif [ "$(nmcli | grep "$wifiDev: connecting ")" ]; then step="$(nmcli | grep "$wifiDev: connecting " | sed 's/^.*(/(/;s/).*$/)/')" wifi="⚙️ $(nmcli | grep "$wifiDev: " | cut -d' ' -f5-) $step" else # with IP #wifi="✔️$(nmcli | grep "$wifiDev: connected to " | cut -d' ' -f4-) ($(ip addr show $wifiDev | grep "inet " | cut -d' ' -f6)) ($(grep "^\s*w" /proc/net/wireless | awk '{print int($3 * 100 / 70)"%"}'))" # with name wifi="✔️ $(nmcli | grep "$wifiDev: connected to " | cut -d' ' -f4-) ($(grep "^\s*w" /proc/net/wireless | awk '{print int($3 * 100 / 70)"%"}'))" fi if [ -z "$(nmcli | grep $ethDev)" ]; then en="❌❗ No $ethDev" elif [ "$estatus" = "down" ]; then en="❌" else # with IP #en=$(ip addr show $ethDev | grep "inet " | cut -d' ' -f6) # no IP en=✔️ fi echo "📶$wifi 🌐$en"