Exemplo com yad --entry
yad --entry:
Diálogo de entrada de texto, onde podemos fazer entrada de dados, modificando a forma como essa entrada será feita, podendo ser do tipo senha(password), texto e número.
#!/bin/bash
# yad com --entry
# recebe valores e armazena em variáveis
NOME=$(\
yad --entry \
--entry-label="Nome" \
--entry-text="seu nome aqui" \
--completion \
--editable \
--title="USO DO YAD COM --entry" \
--width="300" \
)
SENHA=$(\
yad --entry \
--entry-label="Senha" \
--entry-text="123456" \
--completion \
--editable \
--hide-text \#senha esconde o texto digitado apresentando apenas um . ponto
--title="USO DO YAD COM --entry" \
--width="300" \
)
yad --title="YAD COM --entry" \
--text="Nome: $NOME, Senha: $SENHA" \
--width="300" \
--height="100"
#.EOF
Salve com o nome de entry.sh, dê permissão de execução:
chmod +x entry.sh
Execute:
./entry.sh
Exemplo com yad --icons
yad --icons:
Diálogo que mostra uma caixa com os ícones de atalho (formato .desktop).
Exemplo:
#!/bin/bash
# yad com icons
# mostra os ícones das aplicações instaladas no seu sistema
# você pode abrir uma aplicação clicando no ícone correspondente
yad --icons \
--read-dir="/usr/share/applications" \
--width="600" \
--height="500"
#.EOF
Salve com o nome de icons.sh, dê permissão de execução:
chmod +x icons.sh
Execute:
./icons.sh
Após clicar duas vezes em um ícone ele abre aplicação correspondente:
Exemplo com yad --file
yad --file:
Dialogo que permite selecionar um arquivo/diretório, retornando o caminho do mesmo.
Exemplo:
#!/bin/bash
# yas com file
# permite selecionar um arquivo/diretório através de caixa de diálogo
# retorna o caminho do arquivo/diretório, deixando a nós o critério de fazer
# o que quiser com ele, nesse caso só vou mostrar o tamanho
ARQUIVO=$(\
yad --file \
--directory \
--title="Selecione um diretório para ver seu tamanho" \
--width="500" \
--height="300" \
)
TAMANHO=$(du -sh $ARQUIVO | cut -d"/" -f 1)
yad --title="Tamanho do diretório" \
--text="Tamanho do diretório $ARQUIVO = $TAMANHO" \
--width="400" \
--height="100" \
--button=gtk-ok:0
# a opcao button=gtk-ok:0 - mostra apenas o botao de ok no dialog
# e seu código de retorno é 0 (zero)
#.EOF
Salve com o nome de "file.sh", dê permissão de execução:
chmod +x file.sh
Execute:
./file.sh
Após selecionar o diretório ele mostra o tamanho do mesmo:
Exemplo com yad --font
yad --font:
Mostra um diálogo para seleção de fontes.
Exemplo: (detalhe o manual não mostra que podemos colocar o tamanho da fonte depois do nome, descobrir testando mesmo).
#!/bin/bash
# yad com font
# mostra um diálogo de seleção de fonte
# retorna o nome da fonte selecionada e tamanho selecionado, gravando num html
RESULTADO=$(\
yad --font \
--fontname="Ubuntu",14 \
--preview="Texto para exemplo do uso de fonte yad é 10 :-) " \
--title="Selecione uma fonte" \
)
# usa expressão regular para pegar apenas o texto
FONTE=$(echo $RESULTADO | grep -o '[[:alpha:]]*')
# usa expressão regular para pegar apenas o tamanho da fonte, 2 digitos
TAMANHO=$(echo $RESULTADO | egrep -o '[0-9]{2}')
# grava o resultado num arquivo html para fazer um teste um pouco útil :-)
echo "texto com a fonte $FONTE e TAMANHO $TAMANHO " > arq_teste.htm
# abre o firefox para fazer um teste
firefox file://$PWD/arq_teste.htm
#.EOF
Salve com o nome de "font.sh", dê permissão de execução:
chmod +x font.sh
Execute:
./font.sh
Após selecionar a fonte e tamanho, abre um página do
Firefox com o resultado:
Exemplo com yad --form
yad --form;
Uma das novidades que mais gostei: FORMULÁRIOS, não dava pra fazer isso no
Zenity, e limitava as entradas do usuário tendo que aprensetar várias telas para coletar dados, o que não é muito prático.
Exemplo:
#!/bin/bash
# yad com FORMULARIOS, que bacana, tem algumas novidades aprecie com calma
HOJE=$(date +%d/%m/%Y)
touch $HOME/cad_usuario.txt
VAR_FORM=$( \
yad --form \
--title="CADASTRO DE USUÁRIOS" \
--width=400 \
--height=400 \
--image="accessories-text-editor" \
--field="Cadastrando em":RO "$HOJE" \
--field="Nome:" "" \
--field="Sexo":CB Masculino!Feminino \
--field="Login:" "$USER" \
--field="Senha:":H "123456"\
--field="Ler livro sobre:":RO "" \
--field="Programação":CHK FALSE \
--field="Redes":CHK FALSE \
--field="Linux":CHK TRUE \
--field="Quantos Filhos:":NUM 0!0..10!1 \
--field="Foto:":FL "$HOME/Pictures" \
--field="Salvar dados em:":DIR "$HOME" \
--field="Cor preferida:":CLR "#00DDDD" \
)
DATA=$(echo "$VAR_FORM" | cut -d"|" -f 1)
NOME=$(echo "$VAR_FORM" | cut -d"|" -f 2)
SEXO=$(echo "$VAR_FORM" | cut -d"|" -f 3)
LOGIN=$(echo "$VAR_FORM" | cut -d"|" -f 4)
SENHA=$(echo "$VAR_FORM" | cut -d"|" -f 5)
#notem que pulei o campo 6, pois o mesmo nao retorna valor útil para nós
LIVRO_PROGRAMACAO=$(echo "$VAR_FORM" | cut -d"|" -f 7)
LIVRO_REDES=$(echo "$VAR_FORM" | cut -d"|" -f 8)
LIVRO_LINUX=$(echo "$VAR_FORM" | cut -d"|" -f 9)
QTD_FILHOS=$(echo "$VAR_FORM" | cut -d"|" -f 10)
FOTO=$(echo "$VAR_FORM" | cut -d"|" -f 11)
SALVAR_EM=$(echo "$VAR_FORM" | cut -d"|" -f 12)
COR=$(echo "$VAR_FORM" | cut -d"|" -f 13)
# repare que o campo $QTD_FILHOS retorna um valor no formato 0.000000
# vc pode usar uma expressão regular, ou o cut, para capturar apenas os digitos antes do .
QTD_FILHOS=$(echo $QTD_FILHOS | cut -d"." -f 1)
#apenas vou mostrar os campos e valores de retorno em um html
DADOS_USUARIO="<table border=1><br/>
<tr><th>CAMPO</th><th>VALOR</th></tr>
<tr><td>DATA</td><td>$DATA</td></tr>
<tr><td>NOME</td><td>$NOME</td></tr>
<tr><td>SEXO</td><td>$SEXO</td></tr>
<tr><td>LOGIN</td><td>$LOGIN</td></tr>
<tr><td colspan=2 align=center>LIVROS</td></tr>
<tr><td>PROGRAMACAO</td><td>$LIVRO_PROGRAMACAO</td></tr>
<tr><td>REDES</td><td>$LIVRO_REDES</td></tr>
<tr><td>LINUX</td><td>$LIVRO_LINUX</td></tr>
<tr><td>QTD_FILHOS</td><td>$QTD_FILHOS</td></tr>
<tr><td>FOTO</td><td><img src='$FOTO' /></td></tr>
<tr><td>DIRETORIO</td><td>$SALVAR_EM</td></tr>
<tr><td>COR</td><td bgcolor='$COR'></td></tr>
</table>"
echo $DADOS_USUARIO > cad_usuario.htm
firefox cad_usuario.htm
#.EOF
Salve com o nome de form.sh, der permissão de execução:
chmod +x form.sh
Execute:
./form.sh
Após preencher o formulário: