Yad 0.16 - Eu quero sempre mais de ti

Neste artigo pretendo mostrar as novidades que vieram com a última versão estável do Yad. Faço uma cobertura mais completa dessa fantástica ferramenta, além de colocar exemplos úteis, comentando as possibilidades que podem ser implementadas.

[ Hits: 84.492 ]

Por: Raimundo Alves Portela em 07/01/2012 | Blog: http://portelanet.com


Introdução



Desde o último artigo que fiz sobre o Yad, já lançaram 8 versões (da 0.8.x para a 0.16.x), e olha que só se passaram 6 meses.

De lá para cá, o Yad continuou surpreendendo, trazendo novidades "fantásticas", como a possibilidade dos botões do Dialog executarem diretamente uma ação sem fechar o Dialog (ver página 3).

Aliás, vamos falar um pouco sobre as versões do Yad. ;-)

O 'code.google.com', onde o projeto está hospedado, classifica-o como em alta atividade devido a rápida mudança entre as versões.

Às vezes você acorda e recebeu uma notificação que a versão 0.15, no fim da tarde 0.15.1, e em menos de 1 mês, 0.16. Isto não chega a ser um problema, na verdade é maravilhoso, mostra a rápida evolução que o Software Livre tem frente ao modelo proprietário, que tem que manter a versão lançada por um bom tempo para ganhar dinheiro com ele, e aí sim lançar outras versões com mais novidades.

Porque usar o Yad

Desde o último artigo que fiz sobre o Yad, conseguir aprender e fazer bastante uso dele, inclusive profissionalmente. Foi graças ao Yad que consegui desenvolver uma aplicação para usuários finais, onde é impensável oferecer um interface via terminal, para fazer cópia de documentos através de scanner de forma que atenda às nossas especificidades; inclusive estou usando este projeto para meu artigo de pós, futuramente espero estar postando o mesmo aqui. :-)

Então pessoal, programar em Shell Script é muito bom, viciante e pode ser usado profissionalmente, não só para automatizar tarefas do dia a dia de um usuário ou administrador de redes, etc, mas também podemos criar aplicações completas, até mesmo com conexão a banco de dados, à internet, etc. Tudo vai depender da necessidade e do cenário envolvido.

E aprender o Yad vai permitir a você deixar sua aplicação com uma interface mais amigável/usual para o usuário final, que não quer ter que digitar comandos no terminal, e sim usar a interface gráfica e o mouse/touchpad de seu computador.

Mais do Mesmo

No artigo anterior já foram cobertos os procedimentos básicos, como onde conseguir o Yad, sua instalação e opções básicas (com exemplos):
Agora pretendo focar as novidades da nova versão e uso prático dos recursos do Yad.

Instalação

Na época eu ainda não tinha encontrado outra forma de instalar que não fosse usando os fontes, mas agora uma novidade boa é que já tem um PPA para o Ubuntu, e um repositório para o Debian, veja:

Ubuntu:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
$ sudo apt-get update
$ sudo apt-get install yad


Debian:

Para o Debian pode ser usado o repositório indicado no site do Projeto Yad:
Nele, a versão mais recente do Yad, 0.16.x, estava disponível para o Debian testing, no momento da produção deste artigo em dezembro de 2012, e a versão disponível para Debian stable era a 0.12.

Ou podem usar o pacote '.deb', disponível em uma das seguintes fontes:
Para todas as distros:

Você pode usar o pacote fonte, disponível em:
Descompacte:

tar –Jxf arquivo.tar.xz

Instale:

./configure
$ sudo make
$ sudo make install


Após instalar, você já pode testar o Yad, com o comando de mesmo nome (em letras minúsculas):

yad
Linux: Yad 0.16 - Eu quero 
sempre mais de ti

Sintaxe básica de uso:

yad [--tipo_dialog ] [ --opções ]

Nota:

Nos scripts postados, uso diversas vezes no final de cada linha a barra invertida '\', elá só está sendo utilizada para melhorar a visualização do script, não é obrigatório, mas recomendo seu uso para deixar seus scripts mais legíveis a olho nu. ;-)

Para todos os exemplos de scripts que seguem neste arquivo, basta copiar o código, salvar com o nome desejado, dar permissão de execução:

chmod +x nome_script.sh

Executar:

./nome_script.sh

    Próxima página

Páginas do artigo
   1. Introdução
   2. Recursos Gerais
   3. Destaques (button e display)
   4. Novos Dialogs (multi-progress e print)
   5. Mais do mesmo (form)
   6. Mais do mesmo (calendar, color e font)
   7. Mais do mesmo (entry e icons)
   8. Mais do mesmo (file e text-info)
   9. Mais do mesmo ( progress e list)
   10. Mais do mesmo (notification e scale)
   11. O esquecido (dnd) e Conclusão
Outros artigos deste autor

Apresentando o Yad - "zenity melhorado"

Explorando a entrada de dados com READ em Bash Shell

Mostrando dicas ao iniciar o terminal

Aplicativos para gerenciar a Área de Transferência (Clipboard)

Consultas SQL pelo Terminal no Postgres, Mysql, SQL Server, etc

Leitura recomendada

Aprendendo a melhorar os seus scripts

Script GitPratico para criar repositórios remotos sem logar no GitHub

Relatório do sistema (Shel Script + PHP)

BackRE - Seu script de backup remoto

Receba seu IP externo via e-mail ou ensine o bash a ler e enviar e-mails

  
Comentários
[1] Comentário enviado por eldermarco em 07/01/2012 - 13:56h

Muito bom Raimundo! Mostrou as várias funcionalidades do yad de maneira bem sucinta e ao mesmo tempo completa.
Artigo bastante útil. Favoritado.

+10

[2] Comentário enviado por danniel-lara em 07/01/2012 - 16:05h

Parabens Raimundo
muito tri mesmo o artigo
ficou bagual mesmo

[3] Comentário enviado por julio_hoffimann em 08/01/2012 - 19:42h

Parabéns Raimundo! Ótimo artigo.

Abraço!

[4] Comentário enviado por fabio em 09/01/2012 - 09:28h

Muito bom! Fiz a instalação através dos repositórios, a versão do pacote já é a 0.16.

[]'s

[5] Comentário enviado por slavko em 09/01/2012 - 15:45h

Please, provide the right information. The latest version of the yad on my public debian repo (mentioned in article) is 0.16.3 (for Debian testing), the 0.12 version is provided only for Debian stable, while most of my packages for stable is in state, when squeeze was released.

Any debian stable user can download source from testing and rebuild it, or try to install the testing version manualy.

regards

[6] Comentário enviado por rai3mb em 09/01/2012 - 21:20h

@slavko

Sorry for the inconvenience, the requested correction was made.

Thank you for calling attention to it.

[7] Comentário enviado por leandro em 11/01/2012 - 12:15h

Não é só um Zenity Melhorado. Agora está muito mais completo do que ele.

Ótima ferramenta!

Ótimo artigo!

+10!

[8] Comentário enviado por alexandregms em 11/01/2012 - 18:08h

As constantes atualizações de versões do YAD demonstram mesmo a rápida evolução do Software Livre!

O YAD dominou o cenário de GUI!

Ótimo artigo, muito bem explicado! Parabéns!

[9] Comentário enviado por c4rl em 11/01/2012 - 23:20h

Cara, fantástica essa ferramenta! Parabéns pelo artigo!

[10] Comentário enviado por rai3mb em 12/01/2012 - 00:07h

Obrigado pessoal, demorou mas saiu, acho que comecei esse artigo em outubro, mas como fiquei bem ocupado, fui adiando, adiando, até que resolvi terminar no nas ultimas semanas de 2011 e primeiras de 2012.

Ótima ferramenta realmente, muito bom pra deixar nossos scripts mais usáveis ;-), podendo fornecer interface via shell e gráfica ao mesmo tempo.

Abraços e dale, dale Yad!

[11] Comentário enviado por manchatnt em 27/01/2012 - 00:12h

Muito bom seu artigo.
Estou montando um script baseado no seu artigo e encontrei algumas dificuldades que não estou conseguindo resolver.

yad --list --width 350 --height 300 --checklist\
--column=Select --column=Dispositivo \
$( \
for dispositivo in $(mount | awk '{print $1,$2,$3}')
do
echo FALSE \"$dispositivo\"
done)

O problema é que ele não está entendendo a separação das colunas. Vi que vc usou um while num de seus exemplos, mas mesmo assim não obtive sucesso. Alguém poderia me ajudar nessa?

[12] Comentário enviado por rai3mb em 28/01/2012 - 00:15h

O problema no caso é que o separador das colunas é um espaço, e vc está usando três campos $1 $2 $3, que retornam 3 espaços, e dispositivo tem todo o conteúdo do resultado do comando mount, e o laço vai ser executado para cada palavra...

Faça assim que dar certo:

#!/bin/bash

#gere o arquivo com os dipositivos
mount | awk '{print $1,$2,$3}' > /tmp/lista

#execute o yad lendo o arquivo
eval yad --list --width 350 --height 300 --checklist \
--column=Select --column=Dispositivo \
$( \
while read dispositivo
do
echo FALSE "\"$dispositivo\""
done < /tmp/lista)





[13] Comentário enviado por Lisandro em 08/10/2012 - 07:30h

Excelente! Favoritado.

[14] Comentário enviado por satanghost em 08/08/2014 - 15:30h

boa tarde Raimundo, muito show seu post.
mas gostaria de uma ajuda se possivel coloquei em um script ests linhas

yad --list --text 'Escolha os diretórios' --checklist --column "Permitir" --column Diretório FALSE '"arquivo' '1"' FALSE '"arquivo' '2"' TRUE '"arquivo' '3"' '--separator=;'

mas nao consigo visualizar diretorio .. como posso colocar para ver meus diretorios ...
grat o]


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts