Búsqueda de sitios web

Zenity: crea cuadros de diálogo gráficos (GTK+) en la línea de comandos y en los scripts de Shell


GNU Linux, el sistema operativo construido sobre un Kernel muy potente llamado Linux. Linux es famoso por sus operaciones de línea de comandos. Con la invención de Linux en el día a día y en la informática de escritorio, nix ya no se inclina hacia la línea de comandos, es igualmente gráfico y el desarrollo de aplicaciones gráficas ya no sigue siendo una tarea difícil.

Aquí, en este artículo, analizaremos la creación y ejecución de un cuadro de diálogo gráfico simple utilizando la aplicación GTK+ llamada “Zenity”.

¿Qué es Zenidad?

Zenity es una aplicación de código abierto y multiplataforma que muestra cuadros de diálogo GTK+ en la línea de comandos y mediante scripts de shell. Permite solicitar y presentar información hacia/desde shell en Cuadros Gráficos. La aplicación le permite crear cuadros de diálogo gráficos en la línea de comandos y facilita la interacción entre el usuario y el shell.

Existen otras alternativas, pero nada se compara con la simplicidad de Zenity, especialmente cuando no necesitas una programación compleja. Zenity, una herramienta que debes tener en tus manos.

Funciones de Zenidad

  1. Software libre
  2. Aplicación multiplataforma
  3. Permitir la ejecución del cuadro de diálogo GTK+
  4. Herramienta de línea de comando
  5. Soporte en scripts de Shell

Utilidad

  1. Fácil creación de GUI
  2. Menos funciones que otras herramientas complejas
  3. Permite que los scripts de shell interactúen con los usuarios de una GUI.
  4. Es posible crear un cuadro de diálogo simple para la interacción gráfica del usuario.

Dado que Zenity está disponible para todas las plataformas principales conocidas y está basado en la biblioteca GTK+, el programa Zenity se puede migrar hacia/desde otra plataforma.

Instalación de Zenity en Linux

Zentity está instalado o disponible de forma predeterminada en el repositorio de la mayoría de las distribuciones estándar de Linux actuales. Puede verificar si está instalado en su máquina o no ejecutando los siguientes comandos.

ravisaive@tecmint:~$ zenity --version 

3.8.0
ravisaive@tecmint:~$ whereis zenity 

zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz

Si no está instalado, puede instalarlo usando el comando Apt o Yum como se muestra a continuación.

ravisaive@tecmint:~$ sudo apt-get install zenity		[on Debian based systems]

root@tecmint:~# yum install zenity				[on RedHat based systems]

Además, también puede compilarlo a partir de los archivos fuente, descargar el último paquete fuente de Zenity (es decir, la versión actual 3.8) utilizando el siguiente enlace.

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Cuadros de diálogo básicos de Zenity

Algunos de los cuadros de diálogo básicos de Zenity, que se pueden invocar directamente desde la línea de comandos.

1. ¿Qué tal un diálogo rápido de calendario?
root@tecmint:~# zenity --calendar

2. Un cuadro de diálogo de error
root@tecmint:~# zenity --error

3. Un cuadro de diálogo de entrada de texto general
root@tecmint:~# zenity --entry

4. Un diálogo de información
root@tecmint:~# zenity --info

5. Cuadro de diálogo de pregunta
root@tecmint:~# zenity --question

6. Una barra de progreso
root@tecmint:~# zenity --progress

7. Diálogo de escala
root@tecmint:~# zenity --scale

8. Un cuadro de diálogo de contraseña
root@tecmint:~# zenity --password

9. Un cuadro de diálogo de formulario
root@tecmint:~# zenity --forms

10. Un diálogo sobre
root@tecmint:~# zenity --about

Crear diálogo de script de Shell

Ahora discutiremos la creación de Zenity Dialog utilizando scripts de shell simples. Aunque podemos crear un cuadro de diálogo único ejecutando comandos Zenity directamente desde el shell (como hicimos anteriormente), no podemos vincular dos cuadros de diálogo para obtener un resultado significativo.

¿Qué tal un cuadro de diálogo interactivo que recibe sus comentarios y muestra el resultado?

#!/bin/bash 
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) 
zenity --info --title="Welcome" --text="Mr./Ms. $first" 
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) 
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Guárdelo en 'cualquier cosa.sh' (convencionalmente) y no olvide hacerlo ejecutable. Establezca el permiso 755 en el archivo anything.sh y ejecute el script.

root@tecmint:~# chmod 755 anything.sh 
root@tecmint:~# sh anything.sh

Acerca de la descripción del guión

El shebang convencional también conocido como hashbang

#!/bin/bash

En la línea siguiente, "primero" es una variable y el valor de la variable se genera en tiempo de ejecución.

    1. –entry‘ significa que se solicita a zenity que genere un cuadro de entrada de texto.
    2. '– title=' define el título del cuadro de texto generado.
    3. '—text=' define el texto que está disponible en el cuadro de entrada de texto.
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

Esta línea del siguiente archivo de script es para generar el cuadro de diálogo Información (–info), con el título “Bienvenido” y el texto “Sr./Sra.primero”.

zenity --info --title="Welcome" --text="Mr./Ms. $first"

Esta línea del script es similar a la línea número dos del script, excepto que aquí se define una nueva variable "última".

last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

Esta última línea del script es nuevamente similar a la tercera línea del script y genera un cuadro de diálogo de información que contiene las variables '$first' y '$last'.

zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Para obtener más información sobre cómo crear cuadros de diálogo personalizados usando un script de shell, visite la siguiente página de referencia Zenity.

  1. https://help.gnome.org/users/zenity/stable/

En el próximo artículo integraremos Zenity con más scripts de shell para la interacción del usuario GUI. Hasta entonces, estad atentos y conectados a Tecmint. No olvides dar tus valiosos comentarios en la sección de comentarios.