Atualmente tenho desenvolvido scripts para automação de algumas rotinas e então fui apresentado ao Zenity.

Quando se escreve scripts, é possível usar o Zenity para criar diálogos simples que interajam graficamente com o usuário:

  • Você pode criar um diálogo para obter informações do usuáro. Por exemplo, você pedir ao usuário que selecione uma data em um diálogode calendário ou para escolher um arquivo por um diálogo de seleção de arquivo.
  • Você pode criar um diálogo para prover informações ao usuário. Por exemplo, você pode usar um diálogo indicador de progresso para indicar o estado atual de uma operação ou usar um diálogo de mensagem de aviso para alertar o usuário.

O Zenity lhe habilita a criar os seguintes tipos de diálogo simples:

  • Calendário
  • Seleção de arquivo
  • Lista
  • Ícone de notificação
  • Mensagem
  • Indicador de progresso
  • Entrada de texto
  • Informação de texto

Uma das funcionalidades que achei mais interessante e util foi a barra de progresso. Partindo deste ponto criei um script para mostrar uma barra te progresso enquanto aguardamos um período de tempo para que alguma tarefa seja executada novamente.

#!/bin/bash
(
   for(( i=0; i<=$1; i++))
   do
      j=`echo $i \* 100 / $1 | bc`;
      sleep 1;
      echo $j;
   done
) |
zenity --progress --percentage=0 --auto-close --title="Titulo da Janela" --text="Mensagem de conteudo da janela"

Para acessar a documentação completa do Zenity é só conferir a página do projeto.