zenity: la plus simple des interfaces graphiques

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."


  • fenêtre de saisie:
    zenity --entry --title="Champ à remplir" --text="Ça va toujours?" --entry-text="répondez ici"


  • question
    zenity --question


  • choix d'un fichier (pour un répertoire ajouter l'option --directory)
    zenity --title="Choix du répertoire" --file-selection


  • 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


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 !
Vus : 320
Publié par Edouard : 53