#!/bin/bash
# Stupid wlan quality -> icon converter for Xfce4 panel
# Copyright (C) 2012 Mithat Konar
#
# License: GPL3
#
# Use this script with a Xfce4 genmon panel item.
# Requires gnome-colors-common
###
### Settings
###
# name of interface to monitor
WLAN=wlan0
# maximum quality level (I used wavemon to figure this out.)
QUAL_MAX=70
# app to run when icon is clicked (I'm using wavemon; consider ceni | wpa_gui.)
THE_APP="xterm -e wavemon -i $WLAN"
#~ THE_APP="/<path to>/toggle-xterm wavemon -i $WLAN"
# icons
ICON_PATH=/usr/share/icons/gnome-colors-common/22x22/status
ICON_MAX=nm-signal-100.png
ICON_MID=nm-signal-75.png
ICON_LOW=nm-signal-50.png
ICON_MIN=nm-signal-25.png
ICON_UNKNOWN=nm-signal-0.png
# lower bounds for link quality levels
MAX=75
MID=50
LOW=25
###
### MAIN
###
# snag wlan info
link_data=($(grep $WLAN /proc/net/wireless))
link_quality=`echo ${link_data[2]} | tr -d .`
link_level=`echo ${link_data[3]} | tr -d .`
# convert link_quality to percent
link_quality=$((($link_quality*100)/$QUAL_MAX))
# pick an icon
if [[ $link_quality -gt $MAX ]] ; then
the_icon=${ICON_MAX}
elif [[ $link_quality -gt $MID ]] ; then
the_icon=${ICON_MID}
elif [[ $link_quality -gt $LOW ]] ; then
the_icon=${ICON_LOW}
elif [[ $link_quality -gt 0 ]] ; then
the_icon=${ICON_MIN}
else
the_icon=${ICON_UNKNOWN}
fi
# output
echo "<tool>$WLAN: ${link_quality}%, ${link_level}dBm</tool>"
echo "<img>$ICON_PATH/$the_icon</img>"
echo "<click>$THE_APP</click>"