Hoy les vengo hablar de zenity. No me voy a detener a explicar que es porque existe bastante documentación y un man bien masticadito, que mejor no podía estar. Pero bueno, aquí les dejo, para los que le gusta estar creando sus scripts y quieren darle algo de vida con una interfaz.
Zenity, Zen Dialogs, es un software que permite generar diálogos simples empleando la biblioteca de GTK+
Con eso es suficiente como para que sepan de que les hablo, así que empecemos a llamar a zenity en consola y vean también por arribita los diálogos soportados.
- Calendarios.
- Mensajes de error, información y advertencia.
- Selección de archivos y carpetas
- Listas.
- Barra de progreso.
- Pregunta al usuario, con posibilidad de responder, aceptar ó cancelar.
- Solicitar entrada de texto, [entrada/salida], casillas de verificación
- Formularios.
- Registro de escala.
- Selección de color
Mas sencillo no puede ser, así que manos a la obra.
PD: Las opciones del zenity son con doble — (simbolo de menos), ejemplo
zenity --opciones
Para los más nuevos en GNU, abajo les dejo un PDF , donde pueden ver lo fundamental que es enlazar las posibles opciones de diálogos con sus respectivas configuraciones. Los mas viejos, vamos, a leer el man 😛
Vamos a ver 1 ejemplo de 2 posibles opciones de zenity.
Dialog options | |
–entry | Display text entry (Mostrar entrada de texto) |
–info | Display info dialog (Mostrar dialogo con info) |
Solo con tirar el –entry, ya zenity te levanta un ventana
zenity --entry
Para pedir una entrada de datos a un user, solo tenemos que ver cuáles son las posibles variantes de entrada, en este caso, vamos a coger –entry.
Opciones de entrada (–entry) | |
–text=STRING | Set the dialog text (Texto de dialogo) |
–entry-text=STRING | Set the entry text (Entrada del texto) |
–hide-text | Hide the entry text (Ocultar lo que se introduce) |
Si quisiéramos levantar una ventana pidiéndole al user que introduzca un ip, sería algo así
zenity --entry --text="Hola usuario" --entry-text="Introduzca el IP"
..la misma estructura seria con –info (la otra opción de arriba) , solo sería ver sus posibles opciones (ver man o descargar PDF).
Existen otras opciones globales para todas las opciones de diálogos, como son:
Opciones Globales | |
–title=TITLE | Set the dialog title (Título de ventana) |
–window-icon=ICONPATH | Set the window icon with the path to an image. Alternatively, one of the four stock icons can beused:’error’, ‘info’, ‘question’or ‘warning’ (Icono de la ventana) |
–width=WIDTH | Set the dialog width (tamaño de la ventana) |
–timeout=TIMEOUT | Set the dialog timeout in seconds (Tiempo de duración) |
Agregando mas como:
zenity --entry --text="Hola usuario" --entry-text="Introduce el IP" --title="Hacer ping a:" --window-icon=question --timeout=10
No me detendré a explicar uno por uno, como ya les decía, man o PDF, esas cosas básicas pueden hacerla sin necesidad de tutos, solo viendo la documentación.
Vamos a crear un cuadro de dialogo (que ya hemos hecho hasta ahora) pero simplemente, pasándole el parámetro al comando ping en un script.
zenity --entry –text="Hola usuario" --entry-text="Introduce el IP" –-title="Hacer ping a:" --window-icon=question --timeout=10; ip=$?; ping -w 4 $ip
Con esto es suficiente para que pidamos un ip, y pasar ese parámetro a ping. Cosa que si lo conjugas con otras opciones como –list, puedes tener la salida del comando de forma gráfica también 😉
Disculpen si esta algo largo el post; si les intereso el artículo, déjelo en los comentarios. Luego de que manoseen un poco al zenity , haremos otra parte para cosas más complejas; y porque no, con scripts, por ahora, solo a dominar lo básico.
Espere el otro artículo en la semana.
Interesante. Espero que puedas subir el PDF. Mientras tanta a instalar el zenity que espero que venga en los repos!!
Y espero el próximo.
El PDF, solo es el man (manual) en español, mas 2 o 3 aportes mios, ya esta disponible. En cuanto al zenity , lo podras encontrar en los repos, pero no creo necesario instalarlo, porque viene en la mayoria de los sistemas por default (que usen GTk+) , eso para no equivocarme y decirte que en todos a los que le instales un entorno grafico.
Yo soy más de dialog, lo uso en scripts muy sencillos. Me gustaría ver más sobre zenity en este aspecto. Se agradece el artículo.
Saludos.
Bueno el artículo. Me hiciste buscar la alternativa Qt: https://github.com/luebking/qarma aunque me da la impresión de que Zenity es mas lightweight
Apenas tenga un tiempo, reviso esa alternativa, igual te tengo otra, busca a YAD, esta en los repos