Linux es conocido por el gran poder que tiene en la terminal. Un poder no necesariamente reñido con el sistema de ventanas y en este caso me refiero a cajas de dialogo generadas desde la consola, con las que es posible mostrar resultados o incluso poder interactuar con ella.
Para ellos podamos contar con Zenity, un programa que nos permite hacer desde cuadros informativos, de advertencia, formularios y gran variedad de combinaciones con comandos de la consola.
Zenity también es de ayuda a la hora de usar un poco de programación no muy avanzada. Puede verse como funciona, su licencia y versión instalada, al ejecutar el comando con el parametro «about»:
zenity --about
Esta disponible para ser descargado e instalado desde los repositorios de debian, para el caso de la demostración con Ubuntu. Ejecutamos tan solo.
sudo apt-get install zenity
Las cajas de dialogo básicas, dan una idea de la gran variedad de utilidades que podemos crear. La implementación en desarrollos de poco exigencia nos permiten dar soluciones un poco mas modestas que el color monocromatico de la terminal.
.- zenity --entry .- zenity --info .- zenity --list .- zenity --progress .- zenity --password
Ejemplo 1
Vamos a utilizar algunas de sus opciones con su respectivo comando a implementar, pensemos en querer ver los 5 primeros archivos mas grandes de un directorio ordenados en pantalla.
du -hs * | sort -nr | head -n5 | zenity --list --title "Lista de Archivos" --text "Primeros 5 " --column "Archivos"
Ejemplo 2
zenity --info --title "Saludos al planeta tierra" --text "Bienvenido a lamiradadelreplicante" --display=:0
Ejemplo 3
En el siguiente script podemos ver un buen ejemplo de entrada de datos:
#!/bin/bash usuario=$(zenity --title="Nombre de Usuario" --text "Ingrese su Nombre de Usuario" --entry) ( echo "10" ; sleep 1 echo "# Reorganizando Archivos" ; sleep 1 echo "20" ; sleep 1 echo "# Scaneando en busca de Virus" ; sleep 1 echo "30" ; sleep 1 echo "# Actualizando politicas" ; sleep 1 echo "15" ; sleep 1 echo "#Reiniciando Sistema, hasta la vista." ; sleep 1 echo "100" ; sleep 1 ) | zenity --progress \ --title="Perfil /home/$usuario" \ --text="Iniciando /home/$usuario" \ --percentage=0
Si queréis saber más de este programa lo podéis hacer echándole un vistazo a su manual:
man zenity
Gracias por esta nueva colaboración @anger! Nunca pensé que lo diría pero le quedan bien las ventanas a la terminal 🙂
Muy buena introduccion. Se agradece. Espero poder seguir viendo temas en continuidad de como crear cosas mas complejas.
Saludos,
Genial aporte! En cuanto llegue a casa me voy a poner a jugar con las ventanitas 🙂