Zenity Cheat Sheet

installation

sudo apt update && sudo apt install zenity

Syntaxe générale :

zenity [TYPE] [OPTIONS]

1️⃣ Messages et dialogues simples

TypeCommandeNotes
Infozenity --info --text="Message"Boîte d’info avec OK
Avertissementzenity --warning --text="Attention"Boîte jaune
Erreurzenity --error --text="Erreur"Boîte rouge
Question Oui/Nonzenity --question --text="Continuer ?"Retour 0=Oui, 1=Non

2️⃣ Entrée utilisateur

TypeCommandeNotes
Texte simplenom=$(zenity --entry --text="Votre nom ?")Retourne la valeur dans $nom
Texte par défautzenity --entry --text="Nom ?" --entry-text="Jean"Valeur initiale préremplie

3️⃣ Sélecteurs

TypeCommandeNotes
Fichierfichier=$(zenity --file-selection --title="Choisir un fichier")Retourne chemin complet
Dossierdossier=$(zenity --file-selection --directory --title="Choisir un dossier")Retourne dossier choisi
Datedate=$(zenity --calendar --title="Choisir une date")Format YYYY-MM-DD

4️⃣ Listes

TypeCommandeNotes
Liste simplezenity --list --column="Fruits" "Pomme" "Banane"Retourne sélection
Liste à cocherzenity --list --checklist --column="Choisir" --column="Article" FALSE Pomme TRUE BananeRetourne éléments cochés
Multi-colonneszenity --list --column="Nom" --column="Couleur" "Pomme" "Rouge" "Banane" "Jaune"Plusieurs colonnes

💡 Astuce : ajouter --width=400 --height=250 pour agrandir la fenêtre.


5️⃣ Progression et notifications

TypeCommandeNotes
Barre de progression`(…)zenity –progress –title= »Chargement » –percentage=0 –auto-close`
Notificationzenity --notification --text="Terminé !"Petit pop-up système

6️⃣ Options utiles

OptionDescription
--title="Titre"Titre de la fenêtre
--text="Texte"Texte affiché dans la fenêtre
--width=NLargeur en pixels
--height=NHauteur en pixels
--auto-closeFerme automatiquement barre de progression à 100%
--column="Nom"Définir une colonne pour les listes

💡 Conseils pratiques

  • Toujours mettre des guillemets autour des textes.
  • Capturer la sortie de Zenity avec variable=$(zenity ...).
  • Utiliser --width et --height pour éviter de redimensionner manuellement.
  • Tester directement dans le terminal avant de l’intégrer à un script.

code de test

#!/bin/bash
# atelier_zenity_modifie.sh
# Mini-atelier interactif Zenity avec fenêtres dimensionnées

while true; do
    action=$(zenity --list \
        --title="Atelier Zenity" \
        --column="Choix" \
        "Message info" \
        "Message avertissement" \
        "Message erreur" \
        "Question Oui/Non" \
        "Entrée de texte" \
        "Sélection fichier" \
        "Sélection dossier" \
        "Liste simple" \
        "Liste à cocher" \
        "Barre de progression" \
        "Sélecteur de date" \
        "Notification" \
        "Quitter" \
        --width=350 --height=400)

    [ -z "$action" ] && exit 0  # Si annulation ou fermeture

    case "$action" in
        "Message info")
            zenity --info --text="Bonjour le monde !" --width=300 --height=100
            ;;
        "Message avertissement")
            zenity --warning --text="Ceci est un avertissement." --width=300 --height=100
            ;;
        "Message erreur")
            zenity --error --text="Une erreur est survenue !" --width=300 --height=100
            ;;
        "Question Oui/Non")
            if zenity --question --text="Voulez-vous continuer ?" --width=300 --height=100; then
                zenity --info --text="Vous avez choisi Oui." --width=300 --height=100
            else
                zenity --info --text="Vous avez choisi Non." --width=300 --height=100
            fi
            ;;
        "Entrée de texte")
            nom=$(zenity --entry --text="Quel est votre nom ?" --width=300 --height=100)
            [ -n "$nom" ] && zenity --info --text="Bonjour, $nom !" --width=300 --height=100
            ;;
        "Sélection fichier")
            fichier=$(zenity --file-selection --title="Choisir un fichier" --width=400 --height=300)
            [ -n "$fichier" ] && zenity --info --text="Fichier choisi : $fichier" --width=300 --height=100
            ;;
        "Sélection dossier")
            dossier=$(zenity --file-selection --directory --title="Choisir un dossier" --width=400 --height=300)
            [ -n "$dossier" ] && zenity --info --text="Dossier choisi : $dossier" --width=300 --height=100
            ;;
        "Liste simple")
            choix=$(zenity --list --title="Choisir un fruit" \
                --column="Fruits" "Pomme" "Banane" "Cerise" "Orange" "Mangue" \
                --width=400 --height=250)
            [ -n "$choix" ] && zenity --info --text="Vous avez choisi : $choix" --width=300 --height=100
            ;;
        "Liste à cocher")
            choix=$(zenity --list --checklist --title="Courses" \
                --column="Choisir" --column="Article" \
                FALSE Pomme TRUE Banane FALSE Cerise TRUE Orange \
                --width=450 --height=300)
            [ -n "$choix" ] && zenity --info --text="Vous avez choisi : $choix" --width=350 --height=150
            ;;
        "Barre de progression")
            (
            for i in {1..100}; do
                echo $i
                sleep 0.03
            done
            ) | zenity --progress --title="Chargement" --percentage=0 --auto-close --width=400 --height=100
            ;;
        "Sélecteur de date")
            date=$(zenity --calendar --title="Choisir une date" --width=350 --height=250)
            [ -n "$date" ] && zenity --info --text="Date choisie : $date" --width=300 --height=100
            ;;
        "Notification")
            zenity --notification --text="Processus terminé !" --width=300 --height=100
            ;;
        "Quitter")
            exit 0
            ;;
    esac
done