Zenity es un programa para desplegar ventanas de diálogo que reciben o entregan información procesable con scripts en bash, por ejemplo. Es algo así como la versión moderna del comando dialog, pero que usa las bibliotecas GTK+ para sus propósitos.

Si eres usuario de GNOME ten por seguro que zenity viene integrado. Si no, pues no... Así que tendrás que instalarlo con el gestor de paquetes de tu distribución. Los manuales en español están disponibles en línea.

Los cuadros de diálogo provistos por zenity son, entre otros:

Calendario. Seleccionador de archivos. Mensajes de error, información, pregunta y advertencia. Entrada de texto. * Ícono de notificación.

Teclea este comando para conocer todas las opciones disponibles para zenity:

$ zenity --help-all | less
Usage:
  zenity [OPTION...]

Help Options:
  -h, --help                              Show help options
  --help-all                              Show all help options
  --help-general                          Show general options
  --help-calendar                         Show calendar options
  ...
  ...
  --question                              Display question dialog
  --warning                               Display warning dialog
  --scale                                 Display scale dialog
  --text-info                             Display text information dialog
  --display=DISPLAY                       X display to use

Probemos con el calendario. Sabemos que Cervantes y Shakespeare murieron el 23 de abril de 1616. Ahora conozcamos con zenity el día de tan singular fecha:

$ zenity --calendar --month=04 --day=23 --year=1616
04/23/1616

Fue sábado (con respecto a nuestro calendario, por supuesto). ¿Notaste que zenity devuelve la fecha? Selecciona otra fecha interactivamente y verás un cambio en la salida. Es una característica útil para crear scripts.

Ahora creemos una incoherente ventana de diálogo para aumentar el estrés de un usuario neuróticos:

$ zenity --question --title "Error 0xAE34D6" --ok-label="Definitivamente" 
--cancel-label="Sí" --text 'Encontré Windows. ¿Desea eliminarlo?'

¿Deseas iniciar el día leyendo algún blog de la red Hipertextual, pero por alguna extraña razón quieres elegirlo de una lista incrustada en una ventana GTK+? Házlo zenity:

$ blog=$(zenity --list --text "Selecciona tus blogs..." 
--title "Hipertextual" --checklist  --column "Blog" --column "URL" 
FALSE http://alt1040.com 
FALSE http://bitelia.com  
FALSE http://motorfull.com | tr "|" " ")

$ echo $blog
http://bitelia.com http://motorfull.com

$ firefox $blog

Lo anterior aparenta cierta complejidad, pero no hay tal si revisas con calma. Te invito a intentar con esas y otras opciones. Verás que con zenity serás capaz de enriquecer tus scripts de forma insospechada y sin necesidad que programar directamente con GTK+. Por cierto, hay un easter egg asociado a zenity... pregúntale a Google por él.

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito

También en Hipertextual: