Zenity est un programme qui permet d'afficher des boîtes de dialogue à partir de la ligne de commande et donc d'un script shell. Pour l'installer utilisez votre gestionnaire de paquets favoris, il est dans la majorité des dépôts. Quelques exemples de ce que peut faire zenity:
  • fenêtre d'information: zenity --info --title="Le titre de la fenêtre" --text="Le texte de la fenêtre d'information." 111.png
  • fenêtre de saisie: zenity --entry --title="Champ à remplir" --text="Ça va toujours?" --entry-text="répondez ici" 222.png
  • question zenity --question 333.png
  • choix d'un fichier (pour un répertoire ajouter l'option --directory) zenity --title="Choix du répertoire" --file-selection 444.png
  • barre de progression zenity --progress
Hé ! la barre de progression ne fait rien et reste bloquée ! En effet zenity (comme beaucoup d'autres programmes) communique par des pipes (symbole "|") qui sont des "tuyaux" virtuels par lesquels transitent des données et qui permettent de faire communiquer des programme entre eux. Ainsi pour utiliser la fonction progress de zenity il vous faut connecter zenity à un script ou un programme qui écrit l'avancement en % sur la sortie standard :
progress=0;while [ $progress -le 100 ]; do echo $progress; let $[ progress += 5 ]; sleep 1; done | zenity --progress
555.png Vous pouver récupérer les valeurs produites par zenity (nombre, nom de fichier...) resultat=$( zenity --entry) ou les envoyer à un autre programme/script via un pipe
zenity --entry | calcul.sh


Certaines fonctions comme zenity --question ne renvoient pas directement de valeurs, il faut regarder leur valeur de retour:
zenity --question
echo $?


Mais zenity propose encore d'autres fonctions comme calendar, error, list, warning, scale... Pour plus de détails je vous invite à regarder zenity --help et le man qui sont très complets et clairs. N'hésitez pas à poser des questions. À venir bientôt un script utilisant zenity !