Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
zenity [Le 11/07/2010, 16:49]
Maisondouf
zenity [Le 24/02/2023, 06:56] (Version actuelle)
88.166.188.193 coorectifs lié à des remontés de wiki-correctors
Ligne 1: Ligne 1:
-{{tag>​console terminal ​BROUILLON}}+{{tag>​console terminal}}
  
 ---- ----
  
 +{{  https://​www.chicoree.fr/​w/​images/​0/​08/​Zenity_info.png?​200}}
 ====== Zenity ====== ====== Zenity ======
  
-//​Traduction de la courte description sur le site officiel de Zenity.// ((Zenity is a tool that allows you to display Gtk+ dialog boxes from the command line and through shell scripts. It is similar to gdialog, but is intended to be saner. It comes from the same family as dialog, Xdialog, and cdialog, but it surpasses those projects by having a cooler name.)) +//​Traduction de la courte description sur le site officiel de Zenity.//​((Zenity is a tool that allows you to display Gtk+ dialog boxes from the command line and through shell scripts. It is similar to gdialog, but is intended to be saner. It comes from the same family as dialog, Xdialog, and cdialog, but it surpasses those projects by having a cooler name.))
- +
-**Zenity** est un outil qui permet d'​afficher des boites de dialogue GTK+ depuis la ligne de commande ou au travers de scripts shell. Il est similaire à //​gdialog//,​ mais son but est d'​être plus simple. Il appartient à la même famille que //dialog// (affichage de pseudo boite de dialogue en console), //xdialog// et //​cdialog//,​ mais il surpasse tous ces projets en ayant un nom bien plus classe. ​+
  
 +**Zenity** est un outil qui permet d'​afficher des boîtes de dialogue GTK+ depuis la ligne de commandes ou au travers de scripts shell. Il est similaire à //​gdialog//,​ mais son but est d'​être plus simple. Il appartient à la même famille que //dialog// (affichage de pseudo-boîtes de dialogue en console), //xdialog// et //​cdialog//​.
 ===== Installation ===== ===== Installation =====
  
-Il suffit ​pour cela d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt://zenity|zenity]]**. +Zenity est installé sur Ubuntu par défaut. Sinon, il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>zenity]]**.
  
 ===== Utilisation ===== ===== Utilisation =====
-Zenity permet d'​afficher ​12 types de fenêtre :+Zenity permet d'​afficher ​14 types de fenêtre :
  
 ^ Type de fenêtre ​      ^ Argument ​        ^ Description ​                     ^ ^ Type de fenêtre ​      ^ Argument ​        ^ Description ​                     ^
-| Calendrier ​           |''​%%--calendar%%'' ​  ​| Affiche un calendrier ​          ​+| Calendrier ​           |''​%%--calendar%%'' ​     | Affiche un calendrier ​             
-| Entrée ​               |''​%%--entry%%'' ​     | Permet la saisie de caractères ​ +| Entrée ​               |''​%%--entry%%'' ​        ​| Permet la saisie de caractères ​    ​
-| Erreur ​               |''​%%--error%%'' ​     | Affiche ​un erreur à l'​écran ​    ​+| Erreur ​               |''​%%--error%%'' ​        ​| Affiche ​une erreur à l'​écran ​      ​
-| Navigateur de fichier |''​%%--file-selection%%''​| Permet la sélection d'un fichier| +| Navigateur de fichier |''​%%--file-selection%%''​| Permet la sélection d'un fichier ​  ​
-| Info                  |''​%%--info%%'' ​      ​| Affiche une information ​        ​+| Info                  |''​%%--info%%'' ​         | Affiche une information ​           
-| Liste                 ​|''​%%--list%%'' ​      ​| Affiche une liste               ​+| Liste                 ​|''​%%--list%%'' ​         | Affiche une liste                  
-| Notification ​         |''​%%--notification%%''​| Afficher une notification dans la zone prévue à cet effet| +| Notification ​         |''​%%--notification%%'' ​ | Afficher une notification dans la zone prévue à cet effet                
-| Progress ​             |''​%%--progress%%'' ​  ​| Permet de suivre ​une progression| +| Progress ​             |''​%%--progress%%'' ​     | Permet de visualiser le degré d'​accomplissement d'une (suite de) tache(s) \\ à l'aide d'une barre de progression| 
-| Question ​             |''​%%--question%%'' ​  ​| Affiche une question ( OUI / NON )| +| Question ​             |''​%%--question%%'' ​     | Affiche une question ( OUI / NON ) | 
-| Info texte            |''​%%--text-info%%'' ​  ​| Affiche un texte dans une fenêtre| +| Info texte            |''​%%--text-info%%'' ​    ​| Affiche un texte dans une fenêtre ​ 
-| Avertissement ​        ​|''​%%--warning%%'' ​    ​| Afficher un avertissement ​       +| Avertissement ​        ​|''​%%--warning%%'' ​      ​| Afficher un avertissement ​         
-| Scale                 ​|''​%%--scale%%'' ​      ​FIXME Établir ​une valeur ​en positionnant ​un curseur ​sur une barre |+| Scale                 ​|''​%%--scale%%'' ​        ​Choisir ​une valeur ​numérique à l'aide d'un curseur ​ | 
 +| Formulaire ​           |''​%%--forms%%'' ​        | Affiche un formulaire (à partir de la version 3.2.0)| 
 +| Mot de passe          |''​%%--password%%'' ​     | Demande un mot de passe (peut être utilisé avec 'sudo -S'​) ​       | 
 +| Temporisation ​        ​|''​%%--timeout%%'' ​      | Définit le délai d'​expiration de la boîte de dialogue en secondes | 
 + 
 +Pour plus d'​infos,​ consulter la [[https://​help.gnome.org/​users/​zenity/​|(choisir sa version) >> page de manuel de Zenity. ]]
  
-Pour plus d'infosconsulter ​la [[http://​library.gnome.org/​users/​zenity/​stable/​index.html.fr|page de manuel]] de zenity.+<note tip>​__''​Note de construction du tableau ci-dessus''​__ : \\ Afin d'insérer un saut de ligne dans une même celluleil suffit d'​utiliser ​la balise ''<​espace>​\\<​espace>''​ pour insérer un retour chariot dans une cellule.
  
-<note tip>Il existe un script ​permettant ​la création de fenêtres Zenity de façon rapide et simple.+__''​Note sur Zenity''​__ : \\ Il existe un script ​qui facilite ​la création de fenêtres Zenity de façon rapide et simple.
  
-Voir le script ​[[Zenity_Generator]].</​note>​+Voir le logiciel ​[[zenitor 3]]. FIXME Cf le chapitre Documentation sur l'​obsolescence de Zenitor 3. Problème Python concernant les sources de zenitor 3. Le script est disponible à la page [[https://​kiwix.jackbot.fr/​ubuntudoc_fr_all_2015-12/​A/​zenitor_3.html|« Zenitor 3 ou Zenity Generator 3 »]]</​note>​
  
 ==== Exemples ===== ==== Exemples =====
  
-Voici quelques infos bonus que certaines personnes ont trouvé+Voici quelques infos bonus que certaines personnes ont trouvées
-Car comme vous pouvez le constater, les infos sur zenity ​ne sont pas légions...+Car comme vous pouvez le constater, les infos sur Zenity ​ne sont pas légion…
  
-Ces fonctions ne semblent pas fonctionner pour les fenêtre "entry".+Ces fonctions ne semblent pas fonctionner pour les fenêtres “entry.
  
-Zenity est basé sur GTK+, lui même basé sur [[http://​library.gnome.org/​devel/​pango/​stable/​PangoMarkupFormat.html|Pango]],​ il est donc possible d'​utiliser certaines fonctions de ce logiciel.+Zenity est basé sur GTK+, lui-même basé sur [[http://​library.gnome.org/​devel/​pango/​stable/​PangoMarkupFormat.html|Pango]],​ il est donc possible d'​utiliser certaines fonctions de ce logiciel.
  
-<note tip> Un module perl permet aussi d'​utiliser facilement Zenity au sein des scripts perl, voir [[http://​search.cpan.org/​~kck/​UI-Dialog-1.08/​lib/​UI/​Dialog/​Backend/​Zenity.pod|la page CPAN associée (en anglais)]] </​note>​+<note tip> Un module perl permet aussi d'​utiliser facilement Zenity au sein des scripts perl, voir [[http://​search.cpan.org/​~kck/​UI-Dialog-1.08/​lib/​UI/​Dialog/​Backend/​Zenity.pod|la page CPAN associée (en anglais)]]</​note>​
  
 === Coloration du texte === === Coloration du texte ===
-Rien de mieux qu'un peu de couleur pour égayer un texte, pour cela, il faut utiliser la balise ​"span color" ​+ 
-<​code><​span color=\"​red\">​red</​span></​code>​+Rien de mieux qu'un peu de couleur pour égayer un texte. Pour cela, il faut utiliser la balise ​span color” : 
 + 
 +<​code ​perl> 
 +<span color=\"​red\">​red</​span>​ 
 +</​code>​
  
 Fenêtre de test : Fenêtre de test :
-<code>zenity --info --text "+ 
 +<file perl>zenity --info --text "
 <span color=\"​red\">​red</​span>​ <span color=\"​red\">​red</​span>​
 <span color=\"​green\">​green</​span>​ <span color=\"​green\">​green</​span>​
Ligne 63: Ligne 72:
 <span color=\"​gray\">​gray</​span>​ <span color=\"​gray\">​gray</​span>​
 <span color=\"​lightblue\">​lightblue</​span>​ <span color=\"​lightblue\">​lightblue</​span>​
-<span color=\"​lightgray\">​lightgray</​span>"</​code>+<span color=\"​lightgray\">​lightgray</​span>"</​file>
  
 === Choix de la police pour le texte === === Choix de la police pour le texte ===
-Marre de voir toujours la même police ? Il vous suffit donc d'​utiliser la balise ​"span font-family"+ 
-<code><​span font-family=\"​Arial\">​essai de polices</​span></​code>+Marre de voir toujours la même police ? Il vous suffit donc d'​utiliser la balise ​span font-family. 
 + 
 +<file perl> 
 +<span font-family=\"​Arial\">​essai de polices</​span>​ 
 +</file>
  
 Fenêtre de test : Fenêtre de test :
-<code>zenity --info --text "+ 
 +<file perl> 
 +zenity --info --text "
 <span font-family=\"​Arial\">​essai de polices</​span>​ <span font-family=\"​Arial\">​essai de polices</​span>​
 <span font-family=\"​sans-serif\">​essai de polices</​span>​ <span font-family=\"​sans-serif\">​essai de polices</​span>​
Ligne 76: Ligne 91:
 <span font-family=\"​impact\">​essai de polices</​span>​ <span font-family=\"​impact\">​essai de polices</​span>​
 <span font-family=\"​sans\">​essai de polices</​span>​ <span font-family=\"​sans\">​essai de polices</​span>​
-<span font-family=\"​webdings\">​essai de polices</​span>"</​code> +<span font-family=\"​webdings\">​essai de polices</​span>"​ 
 +</file>
  
 === Changer la forme de la police === === Changer la forme de la police ===
-Un mot a besoin de ressortir du reste ? Il suffit de mettre en gras, en italique... + 
-<code>zenity --info --text "+Un mot a besoin de ressortir du reste ? Il suffit de mettre en gras, en italique… 
 + 
 +<file perl> 
 +zenity --info --text "
 <​b>​gras</​b>​ <​b>​gras</​b>​
 <​big>​grand</​big>​ <​big>​grand</​big>​
Ligne 90: Ligne 108:
 <​small>​petit</​small>​ <​small>​petit</​small>​
 <​tt>​espace entre les lettres</​tt>​ <​tt>​espace entre les lettres</​tt>​
-<​u>​souligné</​u>"</​code> +<​u>​souligné</​u>"​ 
 +</file>
  
 === Fenêtre avec liste de choix === === Fenêtre avec liste de choix ===
 +
 {{ zenity-entry.png}} {{ zenity-entry.png}}
  
 Il est possible de créer une fenêtre comme suit : Il est possible de créer une fenêtre comme suit :
  
-Pour cela, il faut créer une boite de type "entry" ​et ajouter les différents choix de la liste à la fin de la commande.+Pour cela, il faut créer une boite de type entry” et ajouter les différents choix de la liste à la fin de la commande.
  
 N'​oubliez pas les guillemets si vous mettez des espaces dans les réponses. N'​oubliez pas les guillemets si vous mettez des espaces dans les réponses.
 Ex : Ex :
-<​code>​zenity --entry --title="​Jour"​ --text="​Veuillez indiquer le jour de la semaine"​ Lundi Mardi Mercredi "Autre jour..."</​code>​ 
  
-Pour ajouter une réponse de base, utilisez l'​option "​entry-text"​ : +<file bash> 
-<code>zenity --entry --title="​Jour"​ --text="​Veuillez indiquer le jour de la semaine" ​--entry-text="​Lundi" ​Mardi Mercredi</​code>+zenity --entry --title="​Jour"​ 
 +--text="​Veuillez indiquer le jour de la semaine"​ 
 +Lundi Mardi Mercredi ​"Autre jour..."​ 
 +</file>
  
 +Pour ajouter une réponse de base, utilisez l'​option “entry-text” :
  
-=== Boite de message et récupérer la valeur === +<file bash> 
-<code+zenity --entry --title="​Jour"​ \ 
- if ret=`zenity --entry --title='​Titre de la vidéo'​ --text='​Saisissez le titre de la vidéo : '` +--text="​Veuillez indiquer le jour de la semaine"​ --entry-text="​Lundi"​ Mardi Mercredi 
- then +</​file>​ 
- titre=$ret + 
- if [ "​$titre"​ = ""​ ] +=== Boîte ​de message et récupérer la valeur === 
- then + 
- echo "Il faut un titre, tient pan t'es mort!"​ +<file bash
- exit +   ​if ret=`zenity --entry --title='​Titre de la vidéo' ​\  
- fi +   --text='​Saisissez le titre de la vidéo : '` 
- else +    then 
- echo "tsss Un Titre on  dit, pas le bouton annuler!"​ +       ​titre=$ret 
- exit +          if [ "​$titre"​ = ""​ ] 
- fi+          then 
 +        echo "Il faut un titre, tient pan t'es mort!"​ 
 +        exit 
 +          fi 
 +    else 
 +          echo "Tsss, un titre on dit, pas le bouton annuler!"​ 
 +    exit 
 +   ​fi
 echo $titre echo $titre
-</code>+</file> 
 + 
 +=== Méthode 2 pour récupérer la valeur ===
  
-=== Autre méthode ​pour récupérer la valeur ===+Voici une méthode ​alternative à celle décrite ci-dessus :
  
-Voici une méthode alternative a celle décrite ci-dessus +<file bash>
-<code>+
 dossierSortie=$(zenity --file-selection \ dossierSortie=$(zenity --file-selection \
 --title="​Veuillez selectionner un dossier"​ \ --title="​Veuillez selectionner un dossier"​ \
Ligne 136: Ligne 166:
 echo ${dossierSortie} echo ${dossierSortie}
 sleep 10 sleep 10
-</code>+</file> 
 + 
 +=== Méthode 3 pour récupérer la valeur === 
 + 
 +Très simple : 
 + 
 +<file bash> 
 +variable=$(zenity --entry --title="​Choix"​ --text="​Indiquez un mot"​) 
 + 
 +echo "le mot choisi est "​$variable 
 +sleep 5 
 +</​file>​ 
 + 
 +=== Méthode pour récupérer la valeur avec --question === 
 + 
 +<file bash> 
 +zenity --question \ 
 +--title "​coffee"​ \ 
 +--text "Faire du café ?" 
 + 
 +if [ $? = 0 ] 
 +then 
 +    echo "OUI ! Avec 2 sucres ..." 
 +    sleep 3 
 +else 
 +    echo "NON ! Plutôt du thé ..." 
 +    sleep 3 
 +fi 
 +</file>
  
 === Barres de progression === === Barres de progression ===
  
-//Depuis [[http://library.gnome.org/​users/​zenity/​stable/​zenity-progress-options.html]]//+//Depuis [[https://help.gnome.org/​users/​zenity/​stable/​progress.html.fr]]//
  
 ^ Commande ​                   ^ Rôle                                                      ^ ^ Commande ​                   ^ Rôle                                                      ^
-| %%--text=text%% ​            | Spécifier le texte affiché dans la boîte de dialogue de barre de progression. | +''​%%--text=text%%'' ​            | Spécifier le texte affiché dans la boîte de dialogue de barre de progression. | 
-| %%--percentage=percentage%% | Spécifier le pourcentage initial réglé dans la boîte de dialogue de barre de progression. | +''​%%--percentage=percentage%%'' ​| Spécifier le pourcentage initial réglé dans la boîte de dialogue de barre de progression. | 
-| %%--auto-close%% ​           | Fermer la boîte de dialogue quand la barre de progression atteint 100%. | +''​%%--auto-close%%'' ​           | Fermer la boîte de dialogue quand la barre de progression atteint 100%. | 
-| %%--pulsate%% ​              | Utiliser une barre de progression discontinue jusqu'​à ce qu'un caractère EOF soit lu sur l'​entrée standard. |+''​%%--pulsate%%'' ​              | Utiliser une barre de progression discontinue jusqu'​à ce qu'un caractère EOF soit lu sur l'​entrée standard. |
  
   * Si une ligne commence par '#',​ le texte est mis à jour avec le texte de cette ligne.   * Si une ligne commence par '#',​ le texte est mis à jour avec le texte de cette ligne.
Ligne 152: Ligne 210:
   * %%--progress%% s'​utilise avec un [[pipe]]. Vous devez donc mettre tout le code affecté par la barre de progression entre parenthèses.   * %%--progress%% s'​utilise avec un [[pipe]]. Vous devez donc mettre tout le code affecté par la barre de progression entre parenthèses.
  
-Exemple ​:  +__Exemple:__ 
-<code>+ 
 +<file bash>
 #!/bin/sh #!/bin/sh
 ( (
Ligne 175: Ligne 234:
     --text="​Mise à jour annulée."​     --text="​Mise à jour annulée."​
 fi fi
-</code>+</file>
  
 {{ http://​library.gnome.org/​users/​zenity/​stable/​figures/​zenity-progress-screenshot.png }} {{ http://​library.gnome.org/​users/​zenity/​stable/​figures/​zenity-progress-screenshot.png }}
  
-===== Voir aussi ======+//Voir aussi une utilisation concrète dans un script nautilus sur la documentation de [[shred#​integrer_shred_a_nautilus_script|shred]]//​
  
-  ​* [[http://freshmeat.net/projects/​zenity|Page officielle de zenity]] +=== Formulaire === 
-  * [[http://library.gnome.org/​users/​zenity/​stable/​index.html.fr|Manuel de Zenity]] + 
-  * zenity %%--info%% et [[http://blog.huguesbernard.eu/post/2008/07/04/Utiliser-notify-send-dans-ses-scripts|notify-send]] ! +<note important>​Cette fonction est disponible depuis la version 3.2.0 de Zenity : cela ne fonctionnera pas avec les versions antérieures.</​note>​ 
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=232644%20|Topic parlant des bonus]] + 
-  * [[zenity_generator|Script de génération de fenêtre Zenity]]+^ Commande ​                   ^ Rôle                                                      ^ 
 +| ''​%%--text=Texte%%'' ​            | Spécifier le texte affiché dans la boîte de dialogue de barre de progression. | 
 +| ''​%%--separator=SÉPARATEUR%%'' ​                | Définit le caractère séparateur de sortie. | 
 +| ''​%%--add-entry=Nom du champ%%'' ​              | Ajoute une nouvelle zone de saisie dans la boîte de dialogue de formulaire. | 
 +| ''​%%--add-password=Nom du champ%%'' ​           | Ajoute une nouvelle zone de saisie de mot de passe dans la boîte de dialogue \\ de formulaire. | 
 +| ''​%%--add-calendar=Nom du champ calendrier%%'' ​  ​| Ajoute un nouveau calendrier dans la boîte de dialogue de formulaire. | 
 +| ''​%%--forms-date-format=MODÈLE%%'' ​              | Définit le format de la date retournée. | 
 + 
 +__Exemple:​__ 
 + 
 +<file bash> 
 +#​!/​bin/​bash 
 + 
 +#On crée le formulaire en stockant les valeurs de sortie dans $cfgpass :/ 
 +cfgpass=`zenity --forms \ 
 +    --title="​Exemple qui tue la mort" \ 
 +    --text="​Définir un nouveau mot de passe" \ 
 +    --add-entry="​Nom de l'​utilisateur"​ \ 
 +    --add-password="​Ancien mot de passe" \ 
 +    --add-password="​Nouveau mot de passe" \ 
 +    --add-password="​Confirmer le nouveau mot de passe" \ 
 +    --separator="​|"​` 
 + 
 +#Si on clique sur le bouton Annuler 
 +if "​$?"​ -eq 1 ]; then 
 +    #On quitte le script 
 +    exit 
 +fi 
 +#Sinon on continue 
 +#On peut récupérer les valeurs des différents champs de cette façon : 
 +echo "​$cfgpass"​ | cut -d "​|"​ -f1 #Nom de l'​utilisateur 
 +echo "​$cfgpass"​ | cut -d "​|"​ -f2 | md5sum #Ancien Mot de passe 
 +echo "​$cfgpass"​ | cut -d "​|"​ -f3 | md5sum #Nouveau Mot de passe 
 +echo "​$cfgpass"​ | cut -d "​|"​ -f4 | md5sum #​Confirmation du nouveau mot de passe 
 + 
 +echo "​Franchement la classe cette nouvelle fonction Zenity :P" 
 +</​file>​ 
 + 
 +{{ :​zenity-forms.png?​direct&​ |http://img11.hostingpics.net/pics/​246564zenityforms.png}} 
 + 
 +===== Documentation de Zenity ====== 
 + 
 +==== Manuels ==== 
 + 
 +  * [[https://​help.gnome.org/​users/zenity/|Page officielle de Zenity]] 
 +  * [[https://help.gnome.org/​users/​zenity/​|Choisir sa version ​ >> ​Manuel de Zenity]] 
 +  * **(fr)** ​[[https://wiki.visionduweb.fr/index.php?​title=Programmation_GNU_Linux_Zenity|« Programmation GNU Linux Zenity »]] — Manuel en français illustré par des exemples de code 
 + 
 +==== Exemples de code : Zenity par l'​exemple ==== 
 + 
 +  * **(fr)** [[https://www.chicoree.fr/w/Afficher_des_bo%C3%AEtes_de_dialogue_avec_Zenity|« Afficher des boîtes de dialogue avec Zenity »]] — source : Chicoree.fr 
 +  ​* **(fr)** [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=232644%20|« Zenity a du style ! »]] — source : Forum Ubuntu ; sujet : balises HTML fontes et types de fontes dans Zenity 
 +  * [[zenitor_3|Script de génération de fenêtre Zenity]] ​script compilé jusqu'​à Zesty. Ne fonctionne pas pour les versions suivantes d'​Ubuntu. Problèmes de dépendances 
 +  * [[https://​sourceforge.net/​projects/​yad-dialog/​|Yad:​ un fork de Zenity]]: un script multitâches de Zenity
  
 ---- ----
  
-//​Contributeurs principaux : [[utilisateurs:​blackbg]],​ [[utilisateurs:​hizoka]]. +//​Contributeurs principaux : [[utilisateurs:​blackbg]],​ [[utilisateurs:​hizoka]]. ​\\ 
-Contributeur secondaire ​: [[utilisateurs:​mirage59]],​ [[utilisateurs:​TheCaméléon]]//​+Contributeurs secondaires ​: [[utilisateurs:​mirage59]],​ [[utilisateurs:​TheCaméléon]], [[utilisateurs:​herrleiche|Herrleiche]],​ CKDevelop, Heuzef, [[utilisateurs:​eagle08]]// 
  • zenity.1278859745.txt.gz
  • Dernière modification: Le 11/07/2010, 16:49
  • par Maisondouf