miércoles, 22 de diciembre de 2010

zenity: Crear dialogos graficos en bash.

Zenity nos permite crear diálogos gráficos en nuestros scripts, de una forma bastante sencilla. Lo primero es tenerlo instalado o instalarlo.

$ sudo apt-get install zenity

Ademas de lo que yo te cuente aqui no estaria mal que hicieses un:

$ zenity --help

para mas información sobre sus posibilidades. No obstante aqui te pongo algunos ejemplos y sus resultados:

Minitutorial Zenity: Ejemplos del uso de zenity.



Ventana informativa:
Codigo:
$ zenity --info --text "Hola Mundo, perdon por existir"
salida:

Ventana de alerta:
Codigo:
$ zenity --warning --title="Ubuntu y algo mas" --text "Estas demasiado tiempo frente al PC. Tu cerebro se formateara en 1 minuto."
Salida:

Icono de notificación:
Codigo:
$ zenity --notification --text "Apagame y sal a pasear"
Salida:

Dialogo de lista y selección:
Codigo:

#!/bin/bash
zenity --list \
--title="Elige una opcion:" \
--column="numero" --column="Estado" --column="Solución" \
1 Sediento "Beber" \
2 Hambriento "Comer" \
3 Ambas "Comer y beber" \

Salida:

Selección de archivos:

$ zenity --file-selection --title="Selecciona una archivo"

Salida: Se abre Nautilus para seleccionar archivo.


Dialogo de progreso:
Codigo:
#!/bin/bash
( echo "10" ; sleep 1
echo "20" ; sleep 1
echo "50" ; sleep 1
) |
zenity --progress \
--title="Dialogo de progreso" \
--text="Estoy haciendo cosas" \
--percentage=0
zenity --info --text="Ya he acabado"

Salida:

Entrada de texto:
Codigo:
#!/bin/sh

        if zenity --entry \
        --title="Ubuntu y algo mas" \
        --text="Me gustaria conocerte" \
        --entry-text "Pon aqui tu nombre" \      
          then zenity --info --text="Yo me llamo kike, encantado de conocerte "
          else zenity --info --text="Que insociable eres"
        fi
Salida:

Generar numeros con una barra de desplazamiento:
Codigo:

zenity --scale \
--title="Barra" \
--text="Mueve la barra" \
--min-value=1 --max-value=10 --value=5

Salida:

Asignar salida de zenity a una variable:
Codigo:

#!/bin/bash
var=$(zenity --entry \
        --title="Agregar una entrada" \
        --text="Introdusca su _contraseña:")
if [ $var = "" ]
 then zenity --info --text="joer joer, no has intousio na"
 else zenity --info --text="Encantado de conocerte $var"
fi

Salida:
A estas alturas ya no voy a hacer una captura de la salida, es muy previsible.

Bueno y hasta aquí hemos llegado, supongo que con el tiempo ire poniendo algo mas interesante, esto solo pretende ser una introducción sencilla para los que no conozcáis zenity.

Tutorial zenity: http://library.gnome.org/users/zenity/stable/index.html.es

8 comentarios:

  1. gracias al fin encuentro algo util en cuanto a graficos desde bash

    ResponderEliminar
  2. gracias estuvo, chido, gracias por el conocimiento

    ResponderEliminar
  3. Buenisimo, garcias por compartir, a ver si repaso bash y practico esto, me gusto :D

    ResponderEliminar
  4. Muy interesante, debo agradecer tu trabajo, prometo usar zenity --help

    Me encanto tu aporte

    ResponderEliminar
  5. Gracias, me sirvió para RDP

    http://neto.mx/blog/empresas/freerdp

    ResponderEliminar
  6. Tengo un problema con la ejecución de todo esto, a partir de zenity --list no me sale, no sé hacer que se ejecute. Lo he intentado metiéndolo en un script, pero no hay forma.
    Algo hago mal

    ResponderEliminar
    Respuestas
    1. GRACIAS, porque se me da fatal y al menos siguiendo este blog he consguido hacer algo...

      Eliminar
  7. Lo acabo de probar, hace mucho tiempo que publique esto y me ha funcionado bien. Tras la selección te entrega el nro. que has elegido. Ya me había olvidado del zenity.

    ResponderEliminar