Zenity Cheat Sheet
installation
sudo apt update && sudo apt install zenity
Syntaxe générale :
zenity [TYPE] [OPTIONS]
1️⃣ Messages et dialogues simples
| Type | Commande | Notes |
|---|
| Info | zenity --info --text="Message" | Boîte d’info avec OK |
| Avertissement | zenity --warning --text="Attention" | Boîte jaune |
| Erreur | zenity --error --text="Erreur" | Boîte rouge |
| Question Oui/Non | zenity --question --text="Continuer ?" | Retour 0=Oui, 1=Non |
2️⃣ Entrée utilisateur
| Type | Commande | Notes |
|---|
| Texte simple | nom=$(zenity --entry --text="Votre nom ?") | Retourne la valeur dans $nom |
| Texte par défaut | zenity --entry --text="Nom ?" --entry-text="Jean" | Valeur initiale préremplie |
3️⃣ Sélecteurs
| Type | Commande | Notes |
|---|
| Fichier | fichier=$(zenity --file-selection --title="Choisir un fichier") | Retourne chemin complet |
| Dossier | dossier=$(zenity --file-selection --directory --title="Choisir un dossier") | Retourne dossier choisi |
| Date | date=$(zenity --calendar --title="Choisir une date") | Format YYYY-MM-DD |
4️⃣ Listes
| Type | Commande | Notes |
|---|
| Liste simple | zenity --list --column="Fruits" "Pomme" "Banane" | Retourne sélection |
| Liste à cocher | zenity --list --checklist --column="Choisir" --column="Article" FALSE Pomme TRUE Banane | Retourne éléments cochés |
| Multi-colonnes | zenity --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
| Type | Commande | Notes |
|---|
| Barre de progression | `(…) | zenity –progress –title= »Chargement » –percentage=0 –auto-close` |
| Notification | zenity --notification --text="Terminé !" | Petit pop-up système |
6️⃣ Options utiles
| Option | Description |
|---|
--title="Titre" | Titre de la fenêtre |
--text="Texte" | Texte affiché dans la fenêtre |
--width=N | Largeur en pixels |
--height=N | Hauteur en pixels |
--auto-close | Ferme 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