Tabla de contenido
Una vez más aquí. Hoy vengo a hablar sobre Zenity. Esta es una aplicación multiplataforma gratuita y de código abierto con licencia LGPL, la cual nos va a permitir utilizar scripts de shell para crear una aplicación que pueda interactuar con los usuarios y recibir información. Este programa me ha venido bien para un script de shell que estuve escribiendo esta semana, y por eso me he decidido a dejar este artículo, por si a alguien le puede venir bien también.
La aplicación es una reescritura de gdialog, y nos va a permitir mostrar cuadros de diálogo desde la línea de comandos y scripts de shell. Hay muchos usos diferentes para mostrar cuadros de diálogo, pero debido a su simplicidad y facilidad de uso, esta es una buena opción para los desarrolladores de scripts.
Se trata de una herramienta que utiliza la librería GTK, que nos va a permitir trabajar con ella en GNOME, pero Zenity no se limita únicamente a este entorno de escritorio, sino que es válido para cualquier otro. Aun que se integra mejor con los escritorios basados en GTK.
¿Qué podemos hacer con Zenity?
La última versión de Zenity publicada nos va a permitir crear los siguientes cuadros de diálogo:
- Calendarios.
- Texto de entrada.
- Textos largos.
- Formularios.
- Solicitud de nombre de usuario y contraseña.
- Mensajes de error, información y advertencia.
- Selector de archivos.
- Selector de color.
- Listas.
- Ícono en el área de notificación (bandeja del sistema).
- Barra de progreso.
- Pregunta al usuario, dando la posibilidad de responder aceptar o cancelar.
- Registro de escala.
Instalación de Zenity en Ubuntu
Zenity es una aplicación que viene preinstalada en casi todas las principales distribuciones de Gnu/Linux. En Ubuntu podemos verificar fácilmente si Zenity está instalado en nuestro sistema escribiendo:
zenity --help
Si por el motivo que se no tienes instalada esta herramienta en tu sistema, puedes abrir una terminal (Ctrl+Alt+T) e instalarla escribiendo el comando:
sudo apt install zenity
Algunos ejemplos de uso
Esta herramienta la podremos utilizar directamente desde la línea de comandos, pero también podremos utilizarla directamente en scripts de shell.
Diálogo de entrada de texto
Podremos crear un cuadro de diálogo de entrada de texto fácilmente, este nos ayudará a tomar la entrada del usuario. Para crearlo solo tendremos que ejecutar:
zenity --entry --text="Escribe tu nombre"
Diálogo de contraseña
El cuadro de diálogo para contraseña nos va a ayudar a crear un cuadro de diálogo de entrada para que el usuario escriba un nombre de usuario y una contraseña. Para crearlo solo tendremos que ejecutar:
zenity --username --password
Diálogo de selección de archivos
El cuadro de diálogo de selección de archivos nos ayudará a seleccionar archivos y directorios. Tan solo será necesario escribir el comando:
zenity --file-selection --title="Selecciona un archivo"
Diálogo de mensaje
Esta opción nos va a permitir ver diferentes tipos de ventanas de dialogo con mensajes, como son:
—error: Opción para mostrar una ventana de error.
zenity --error --text=”ERROR en la ejecución”
–question: Opción para ver una ventana desde la que realizar preguntas al usuario.
–warning: Esta opción nos va mostrar ventanas de advertencias.
–info: Opción para mostrar información al usuario.
zenity --info --text="Mensaje de información"
Diálogo de calendario
Este cuadro de diálogo nos será de ayuda a la hora de crear un cuadro de diálogo de calendario. Este cuadro dispone de algunas opciones que se pueden usar junto con al cuadro de diálogo. Estas son:
–title= Podremos indicar el nombre que aparecerá como título de la ventana.
–text= El texto aparecerá encima del calendario.
–day= Indica que el día seleccionado en el cuadro de diálogo del calendario. Debe ser un número entre 1 y 31.
–Month= Indica que el mes seleccionado en el cuadro de diálogo del calendario. Debe ser un número entre 1 y 12.
–Year= Indica el año seleccionado en el cuadro de diálogo del calendario.
zenity --calendar --title="Selecciona una fecha" --text="Haz clic sobre una fecha para seleccionarla" --day=07 --month=12 --year=2021
Diálogo de selección de color
Este diálogo nos va a mostrar una paleta para la selección de color. El comando a utilizar será:
zenity --color-selection --show-palette
Icono de notificación
Con Zenity podemos crear un icono de notificación que aparecerá en la bandeja del sistema.
zenity --notification --window-icon="info" –text="Notificación creada con Zenity"
Cuadro de diálogo de progreso
Este cuadro de diálogo de progreso será de ayuda a la hora de crear una barra de progreso.
zenity --progress --pulsate --text="Barra de progreso"
Diálogo de escala
El diálogo de escala ayuda a crear una ventana con una barra deslizante que podemos mover de 0 a 100. Un uso básico de este ejemplo sería:
zenity --scale --text="Selecciona un valor" --value=90
Esta es una pequeña aplicación que ya tiene su tiempo, con la que podremos realizar más cosas que las que acabamos de ver. Existen aplicaciones similares, pero gracias a su sencillez, esta todavía destaca de manera diferente. Se puede saber más sobre esta herramienta en el manual del proyecto.