L’outil du jour s’appelle Zenity. Il permet d’afficher des boites de dialogue GTK+ à partir de commandes simples. Comme il est écrit sur le site officiel, il appartient à la même famille que dialog, xdialog et cdialog, mais il surpasse tous ces projets en ayant un nom bien plus classe.
Zenity gère les boites de dialogue suivantes :
- calendrier
- saisie de texte
- message d’erreur
- message d’information
- sélection de fichier
- liste de choix
- icône de notification
- barre de progression
- question
- message d’avertissement
- échelle
- affichage de texte
Un petit coup de zenity -help fournissant une aide conséquente, je ne m’étendrai pas ici sur toutes les options possibles, mais voici quelques cas concrets, simples mais efficaces :
#!/bin/sh # Liste zenity --list --title="leloup.org" --text="Comment trouvez-vous leloup.org ?" --column="Appréciation" "Excellent" "Parfait" "Fantastique" "Divin" # Echelle zenity --scale --title="leloup.org" --text="Saisissez la qualité du site leloup.org" --value=95 --min-value=0 --max-value=100 # Notification zenity --notification --text="Parlez de leloup.org autour de vous" # Question zenity --question --text="Allez-vous répondre 'non' à cette question ?" # Barre de progression (while [ ... ]; do # Traitement # ... # Calcul du pourcentage pour la barre de progression) pourcentage="..." # Texte à afficher, et pourcentage, à afficher dans la fenêtre de la barre de progression pour le traitement courant) echo "# nom du traitement en cours" echo "$pourcentage" shift done ) | zenity --progress --text="leloup.org" --percentage=0 --auto-kill |
Précision concernant la barre de progression : elle ne calcule pas la progression elle-même, elle ne fait qu’afficher une progression qui est calculée par vous-même à chaque itération. Pour transmettre un pourcentage quelconque à la barre de progression, il faut écrire echo « <nombre entre 0 et 100> » comme dans l’exemple. Pour calculer le pourcentage, tout dépend de votre problème !
Et voilà, il ne vous reste plus qu’à créer un script révolutionnaire à base de zenity




