Zenity – Scripts con GUI

Presentación de Zenity, herramienta para crear scripts que utilicen elementos gráficos como mensajes, botones, calendario, notificadores en la bandeja del sistema u otros muchos. Explicamos cómo instalar zenity (probado en debian, ubuntu y openSUSE) y damos algunas sugerencias de uso.

¿Alguna vez has escrito un script al que le viniese bien un mensaje y un botón Aceptar/Cancelar?  ¿O un icono de notificación en la bandeja del sistema para informar de que está corriendo? ¿O un calendario para seleccionar fecha? ¡Tenemos la solución!

Zenity es una herramienta que sirve para usar elementos GUI en nuestros scripts de una manera fácil e intuitiva. Por ejemplo, una
vez instalado, la siguiente línea introducida en una consola:

zenity --info --text="El Club de Informática mola"

Produce un mensaje como el siguiente:

 

Mensaje de Ejemplo con Zenity

 

Instalación

Zenity viene incluido en los repositorios de las distros principales, así que basta ejecutar (como root) en debian/ubuntu

apt-get install zenity

o en una suse

zypper install zenity

para instalarlo limpiamente en el sistema.

Uso

A mi juicio, la manera más fácil de ver cómo se usa algo es a través de unos ejemplos. En la siguiente página hay una recopilación de todos los posibles diálogos en zenity. Tienen capturas usando cada una de las opciones y el comando correspondiente. Además, el siguiente extracto de $(zenity –help) lista todas las posibilidades.

--calendar                  Mostrar el diálogo del calendario
--entry                     Mostrar el diálogo de entrada de texto
--error                     Mostrar el diálogo de error
--info                      Mostrar el diálogo de información
--file-selection            Mostrar el diálogo de selección de archivo
--list                      Mostrar el diálogo de lista
--notification              Mostrar notificación
--progress                  Mostrar el diálogo de indicación de progreso
--question                  Mostrar el diálogo de pregunta
--warning                   Mostrar el diálogo de advertencia
--scale                     Mostrar el diálogo de escala
--text-info                 Mostrar el diálogo de texto de información

Aplicaciones

Como podéis suponer, las aplicaciones son múltiples. Creo que prácticamente cualquier script que requiera algo de interactividad con el usuario puede mejorarse con esta herramienta para pedirle (o mostrarle) los datos a la persona que está enfrente de la pantalla. En mi caso, son dos las situaciones donde más útil me ha sido conocer esta herramienta:

  • Para preparar scripts para gente que le asuste la consola. Con muy poco esfuerzo se puede montar un script con apariencia de programa curradísimo y con la misma fncionalidad (invocando por debajo a los programas oportunos, claro está).
  • Para hacer que un script que corra a través de cron se comunique con el usuario (mostrando mensajes de error o de estado). Si lo usáis a través de cron (o, en general, como root) es probable que necesitéis usar algo como lo siguiente:
su username -c 'DISPLAY=:0 zenity --info --text="vuestrotexto"'

¿De qué manera se os ocurre que lo usaríais (usais) vosotros?

Dejar un comentario


(Necesario)


Puedes usar los tags HTML siguientes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>