#!/bin/sh # # nicofo - http://nicofo.tuxfamily.org # # 12/03/2010 Première version # 02/06/2010 nouvelle organisation => si on clique sur icône => c'est réactualisé # 09/06/2010 simplification avec l'option timeout de zenity # 05/07/2010 thèmes d'icônes # 10/09/2010 exit en cas d'erreur zenity UPDATE_TIME=60 # temps [sec] de mise à jour de l'icône wifi INTERFACE=wlan0 # nom de l'interface réseau wifi if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then echo "Usage : showWifi [thème d'icônes]" echo " thème d'icônes à choisir parmi {nm,knm,oxygen,custom}" echo " (nm = Network Manager)" echo " (custom = adaptez le chemin des icônes dans le script)" exit fi THEME=$1 if [ "$THEME" = "custom" ] || [ -z "$THEME" ]; then #theme custom #chemins à modifier ci-dessous #iconConnectedMax=~/bin/iconWifi/high_tray.png #iconConnectedHigh=~/bin/iconWifi/high_tray.png #iconConnectedMedium=~/bin/iconWifi/medium_tray.png #iconConnectedLow=~/bin/iconWifi/low_tray.png #iconDisconnected=~/bin/iconWifi/disconnected_tray.png ch=~/bin/iconWifi/oxygen/32x32/devices/network-wireless iconConnectedMax=$ch-100.png iconConnectedHigh=$ch-75.png iconConnectedMedium=$ch-50.png iconConnectedLow=$ch-25.png iconDisconnected=$ch-0.png [ -f "$iconConnectedHigh" ] && THEME=custom fi if [ "$THEME" = "knm" ] || [ -z "$THEME" ]; then #thème knetworkmanager ch=/usr/share/icons/oxygen/32x32/devices/network-wireless iconConnectedMax=$ch-100.png iconConnectedHigh=$ch-75.png iconConnectedMedium=$ch-50.png iconConnectedLow=$ch-25.png iconDisconnected=$ch-0.png [ -f "$iconConnectedHigh" ] && THEME=knm fi if [ "$THEME" = "nm" ] || [ -z "$THEME" ]; then #theme NetworkManager-gnome ch=/usr/share/icons/hicolor/22x22/apps iconConnectedMax=$ch/nm-signal-100.png iconConnectedHigh=$ch/nm-signal-75.png iconConnectedMedium=$ch/nm-signal-50.png iconConnectedLow=$chnm-signal-25.png iconDisconnected=$ch/nm-no-connection.png [ -f "$iconConnectedHigh" ] && THEME=nm fi if [ "$THEME" = "oxygen" ] || [ -z "$THEME" ]; then #thème oxygen ch=/usr/share/icons/oxygen/64x64/devices/network-wireless iconConnectedMax=$ch-connected-100.png iconConnectedHigh=$ch-connected-75.png iconConnectedMedium=$ch-connected-50.png iconConnectedLow=$ch-connected-25.png iconDisconnected=$ch-disconnected.png [ -f "$iconConnectedHigh" ] && THEME=oxygen fi if [ ! -f "$iconConnectedHigh" ]; then [ -n "$THEME" ] && echo "Le thème d'icônes \"$THEME\" n'existe pas ou n'est pas installé sur votre système." || echo "Aucun thème d'icônes trouvé sur votre système." exit 1 else echo "Thème d'icônes utilisé : $THEME." fi while [ $? -ne 1 ]; do quality=$(iwconfig $INTERFACE| grep "Link Quality"|sed "s#^.*=\([0-9]\+/[1-9][0-9]*\).*\$#\1#") [ -z "$quality" ] || [ -n "$(echo $quality|grep "Link")" ] && quality=0 quality=$((100*$quality)) echo $quality #texte à afficher if [ $quality -eq 0 ]; then text="Wifi pas connecté" icon=$iconDisconnected else ESSID=$(iwgetid -r) text="Connecté à $ESSID Qualité du signal : $quality%" if [ $quality -ge 75 ]; then icon=$iconConnectedMax elif [ $quality -ge 50 ]; then icon=$iconConnectedHigh elif [ $quality -ge 25 ]; then icon=$iconConnectedMedium else icon=$iconConnectedLow fi fi zenity --notification --text="$text" --window-icon=$icon --timeout=$UPDATE_TIME #zenity renvoie : 5 = timeout écoulé ; 0 = click sur icon # 1 = erreur (par ex. erreur de display après logout) done