Nesse artigo vou mostrar uma maravilhosa ferramenta para GUI (Interface Gráfica com o Usuário), que acabou de sair do forno, o
Yad, um fork do
Zenity que vem com diversas melhorias, dentre elas a possibilidade de fazer formulários, melhorando a interação do usuário com nossos scripts em shell.
O bichinho é tão recente que nem o manual cobre todas as opções disponíveis, cito um exemplo mais adiante no uso de diálogo para selecionar fontes.
O autor do Yad é o ucraniano Victor Ananjevsky, e a página do projeto pode ser encontrada no:
Mesmo nessa página ainda há pouca informação sobre o uso do Yad, o melhor lugar que achei no momento é o manual dele (man yad) :-).
Caso forem buscar informações, pouca coisa ainda está disponível, o manual está datado em Marth 24, 2011, e ainda tem o fato de Yad ser o nome de uma ferramenta ...usada em para apontar o texto durante a leitura do Torá... (Fonte:
http://en.wikipedia.org/wiki/Yad). Então ao buscar informações, busque por 'yad fork zenity' vai ser mais fácil.
Ok, vamos em frente pois no artigo pretendo mostrar vários recursos do Yad, com um pequeno exemplo de cada um.
Instalação
Baixe a versão mais recente do Yad no link abaixo:
Descompacte:
tar Jxf arquivo.tar.xz
Instale:
./configure
$ sudo make
$ sudo make install
Pode acontecer dele reclamar de alguma dependência, aqui no meu
Debian, reclamou do
libgtk2, basta instalar com:
sudo apt-get install libgtk2.0-dev
Após instalar, podemos testar com:
yad
Prontinho, vamos à parte divertida e viciante, programar :-)
Possibilidades e Exemplos de Uso
A sintaxe básica é :
yad [--tipo-dialogo] [--options]
Abaixo mostro exemplo com os tipos de diálogo:
--calendar (calendário)
--color (paleta de cores)
--entry (entrada de dados)
--icons (mostra uma caixa com ícones de atalho para aplicações)
--file (diálogo para selecionar arquivos)
--font (diálogo para seleção de fontes)
--form (aeeeeeee formulários)
--list (diálogo com ítens em lista)
--notification (mostra um ícone da barra de notificação do sistema)
--progress (diálogo de progresso)
--text-info (mostra o conteúdo de um arquivo texto)
--scale (diálogo para seleção de valor, usando uma escala)
Vamos lá, para cada um dos exemplos coloco o script e depois algumas imagens da sua execução.
--calendar:
Mostra um calendário permitindo selecionar a data e envia o valor para a saída padrão
Exemplo:
#!/bin/bash
# uso do yad com --calendar
# mostra um calendário iniciando com o dia 20/05/2011
# guarda o valor selecionar na variável $DATA
DATA=$(\
yad --calendar \
--day=20 \
--month=5 \
--year=2011 \
--date-format=%d\/%m\/%Y \
--title=Calendario \
--center \ # disposição do diálogo na tela
)
# mostra um diálogo informando a $DATA selecionada
yad --title="AVISO" \
--text="Você selecionou a data $DATA"
#.EOF
Salve com o nome de "calendar.sh", dê permissão de execução:
chmod +x calendar.sh
Execute:
./calendar.sh
Após selecionar uma data:
Exemplo com yad --color
yad --color:
Diálogo de seleção de cores, permite selecionar uma determinada cor usando a paleta de cores, editando diretamente por código, etc. Bom para saber o código de uma cor específica.
Exemplo:
!/bin/bash
# uso do yad - com color
# permite selecionar determinada cor numa paleta de cores
# e envia o valor para a saída padrão, no caso armazenei na variável $COR
COR=$(\
yad --color \
--init-color="#FFFFFF" \ #cor que inicialmente fica selecionada na paleta de cores.
--palette \
)
yad --title="YAD COM COLOR" \
--text="Você selecionou a cor $COR"
#.EOF
Salve com o nome de "color.sh", dê permissão de execução:
chmod +x color.sh
Execute:
./color.sh
Após selecionar uma cor: