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:

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?

Últimos Comentarios