Une interface fonctionnelle à Zenity, pour Ocaml (v3.11+)

Désormais sur Bitbucket !

Warning

Mais euh... à quoi ça sert ?

Ce petit projet est une bibliothèque ("library") OCaml qui permet d'utiliser l'outil Zenity depuis un terminal ou un programme écrit en OCaml.

Zenity permet d'afficher des fenêtres interactives dans des scripts bash (ou shell), comme par exemple :

$ zenity --title "Mon titre" --info --text "Voici un exemple."

Et ma petite bibliothèque permet de faire la même chose depuis OCaml (soit un terminal interactif, soit un programme interprété ou compilé, avec ocamlc ou ocamlopt) :

$ ocaml zenity.cma

    OCaml version 4.03.0

# open Zenity;;
# info ~title:"Mon titre" ~text:"Voici un exemple." ();;
- : unit = ()

Les deux appels auront le même effet, à savoir afficher cette fenêtre :

fenetre_info.png

L'avantage de cette bibliothèque est de proposer une interface OCaml propre à Zenity, et surtout, une interface bien typée ! Par exemple, voici la signature de cette fonction Zenity.info :

# info;;
- : ?title:string ->
?window_icon:string ->
?width:int ->
?height:int ->
?expiration:int ->
?text:string ->
?no_wrap:bool ->
unit -> unit
= <fun>

Elle peut donc être appelée info ();; pour utiliser les arguments par défaut, ou pour un exemple plus complet :

# info ~width:880 ~height:480
~expiration:30 ~no_wrap:false
~window_icon:"/usr/share/icons/hicolor/48x48/apps/vim.png"
~title:"Vim Notification"
~text:"Some text ... sent from OCaml"

Chaque argument optionnel est décrit avec détail dans la documentation. Il y a de nombreuses autres fonctions. Pour plus de détails, veuillez lire la documentation de zenity (zenity --help-all).


Dépendances

Installation

  1. Télécharger l'archive zip : http://besson.qc.to/publis/Zenity.zip (aussi ici),
  2. Décompresser, allez dans le dossier,
  3. Faire "make",
  4. Copier les deux librairies zenity.cma et zenity.cmxa, dans le dossier de votre projet,
  5. Compiler votre projet avec "ocamlc ... zenity.cma ..." ou "ocamlopt ... zenity.cmxa ..." (i.e. charger les bibliothèques à la compilation),
  6. Dans les sources, ouvrir le module avec "open Zenity;;", et utiliser les fonctions décrites dans cette documentation.
  7. La documentation est aussi disponible en PDF, si besoin.

Sources

Les trois fichiers importants sont

Exemple

Le code OCaml suivant

open Zenity;;
info ~title:"Titre vide" ~expiration:5 ();;

ouvre une fenêtre avec le titre "Titre vide", le message par défaut ("Toutes les mises-à-jour sont complètes"), et une durée de vie de 5 secondes.

demo.png

Licence

Distribué sous licence MIT.

Auteur ?

Ce projet est (C) 2012-2016 Lilian Besson, et sur bitbucket.