Zenity to be zen

08/04/2009

Je sais, c’est déjà vieux, bien connu… mais moi je ne l’avais jamais utilisé et j’ai découvert avec surprise à quel point zenity était un outil puissant. Installé sur Gnome par défaut, cet outil simple comme bonjour permet de créer un dialogue en deux temps trois mouvements.

À la base, je cherchais un moyen d’ajouter à “gedit” (éditeur assez sympa sur Gnome) une fonction permettant de faire un commit subversion avec un raccourci clavier. Sauf que j’avais besoin de saisir un commentaire… en mode console, aucun souci, mais dans gedit…

Et c’est là que zenity est apparut. Petit tour dans la page de manuel (man zenity) et on découvre qu’il sait faire apparaitre tout type de dialogue. Pour tester, j’ai donc taper dans une console:

zenity --entry --title "Test" --text="Entrez du texte"

Et apparait:\\

J’entre du texte, je valide, je regarde dans la console et… je vois le texte que j’ai tapé. Simple, efficace, je regarde les autres options… vous pouvez faire apparaitre n’importe quoi: -entrée de texte -navigateur de fichier -calendrier -information, warning, confirmation… -…

Dans tous les cas, la validation retourne le texte ou le choix sélectionné.

Si par contre vous pressez “Annuler”, le code de retour (\$?) est bel et bien “1” et non “0”, comme pour toute commandes bash.

Mieux, l’option --auto-kill va tuer le parent en cas d’annulation. Cela est très pratique dans mon cas où je ne veux pas faire le “commit” subversion dans le cas où j’annule, et je n’ai donc pas besoin de tester le retour.

Voyons donc comment intégrer mon outil dans gedit.

Ouvrez gedit… Dans “Edition » Préférences » Greffons” vous vérifiez que vous avez bien le plugin “Outils externes” d’activé. Ensuite dans le menu “Outils » Outils externes” vous créer un outil, nommez le “Subversion commit”, assignez lui un raccourci clavier (par exemple Super+F2) et dans “Commandes” vous entrez ceci: ` #!/bin/bash comment=zenity --entry --text=“Commentaire de commit pour le fichier $GEDIT_CURRENT_DOCUMENT_NAME “ --title=“SVN commit” --auto-kill`

echo “Commiting $GEDIT_CURRENT_DOCUMENT_PATH” svn ci $GEDIT_CURRENT_DOCUMENT_PATH -m $comment

``

Les options: -Entrée: Document actuel -Sortie: dans le panneau inférieur -Applicabilité: tous les documents

Clairement, j’affiche un popup demandant le commentaire, je le garde dans la variable “\$comment” puis je l’utilise dans la commande “svn ci”. Du coup, le commit s’effectue avec mon commentaire.

//PS: la variable \$GEDIT_CURRENT_DOCUMENT_PATH est assignée par gedit, pour avoir la liste des variables il vous suffit de cliquer sur l’icône d’aide en bas. Allez sur la page qui traite des variables//

Puisque l’option “auto-kill” est donné, si j’annule alors le script se coupe immédiatement, et le commit ne s’effectue pas.

Vous pouvez alors imaginer à peu près tout ce que vous pouvez faire avec ce petit outil… Perso j’ai pas mal d’idées, et vous ?

Ça peut vous intéresser aussi


Gnome shell innove

Voilà des années qu’on a droit à un type ...


Encrypter un fichier facilement

On discutait sur le canal fedora-fr (IRC, sur freenode.net) ...


Optimisons un peu notre Linux en limitant les accès disques

Que vous ayez un SSD ou non, je pense que ...


Monter un partage webdav sharepoint sur Linux

Quand on m’a posé cette question, au boulot, chez un ...

Merci de m'aider à financer mes services

Si vous avez apprécié cet article, je vous serai reconnaissant de m'aider à me payer une petite bière :)

Si vous voulez en savoir plus sur l'utilisation de flattr sur mon blog, lisez cette page: Ayez pitié de moi

Commentaires

Ajouter un commentaire

Ajouter un commentaire

(*) Votre e-mail ne sera ni revendu, ni rendu public, ni utilisé pour vous proposer des mails commerciaux. Il n'est utilisé que pour vous contacter en cas de souci avec le contenu du commentaire, ou pour vous prévenir d'un nouveau commentaire si vous avez coché la case prévue à cet effet.