sábado, 7 de novembro de 2015

Dialogs com Zenity Shell Scripts

Hoje vamos falar sobre o Zenity:


Zenity e um programa cross-plataform que permite a execução de box GTK+ de dialogos
em linha de comando e scripts shell.
Assim como whiptail and dialog, zenity permite facilmente a criação de GUIs, embora tenha menos recursos do que as ferramentas de criação de GUI mais complexas: "
Outras linguagens de script como Perl e Python podem ser usadas para construir aplicações GUI em grande escala, mas o programa zenity permite que um script shell possa interagir com um usuário GUI, a interface do usuário não é muito refinada quanto uma que poderia ser fornecido por um aplicativo completo GUI, mas é perfeitamente adequada para interações simples ".

Uso Básico

Quando você pode usar Zenity em seus scripts para criar diálogos simples que interagem com o usuário graficamente, como segue:
Você pode criar um diálogo para obter informações do usuário. Por exemplo, você pode solicitar que o usuário selecionar uma data de um calendário de diálogo, ou para selecionar um arquivo a partir de uma janela de seleção de arquivos.
Você pode criar uma caixa de diálogo para fornecer ao usuário informações. Por exemplo, você pode usar uma caixa de diálogo de progresso para indicar o status atual de uma operação, ou utilize uma caixa de diálogo mensagem de aviso para alertar o usuário.
Quando o usuário fecha o diálogo, Zenity imprime o texto produzido pelo diálogo para a saída padrão.

Message Box

O Zenity pode criar quatro tipos de box de menssagens:

  • Erro
  • Informação
  • Questoes
  • Alertas
Para cada tipo , use a opção –text para expecificar o texto que sera exibido na caixa de dialogo.
Examples:
Abrindo uma caixa de pergunta.

zenity --questiontitle="Edson te ajundando a entender o zenity" --text "Você quer mesmo desligar”"







Dialog entry
Use a opção -Entry para criar um diálogo de entrada de texto. Zenity retorna o conteúdo da entrada de texto para a saída padrão, ou pode armazena-la em uma variavel e processa-la mais adiante.
A caixa de diálogo de entrada de texto compatível com as seguintes opções:
-text = text
Especifica o texto que é exibido na caixa de diálogo de entrada de texto.
-Entry-text = text
Especifica o texto que é exibido no campo de entrada da caixa de diálogo de entrada de texto.
-hide-text
Esconde o texto no campo de entrada da caixa de diálogo de entrada de texto.
Exemplo


zenity --entry --title="Login do Sistema" --text="Entre sua password:" --hide-text














Dialogo de progresso
Diálogo de progresso mostra a progressão de uma rotina.
Zenity lê dados de linha de entrada padrão . Se uma linha for prefixada com #, o texto é atualizado com o texto nessa linha. Se uma linha contém apenas um número, o percentual é atualizado com esse número.
O diálogo de progresso suporta as seguintes opções:
-text = text
Especifica o texto que é exibido na caixa de diálogo de progresso.
-percentage = Percentagem
Especifica a porcentagem inicial que está definido na caixa de diálogo de progresso.
-auto-Close
Fecha o diálogo progresso quando 100% tenha sido alcançado.
-pulsate Especifica que a barra de progresso pulsa até que um caractere EOF é lido a partir da entrada padrão.




Diálogo de seleção de arquivo
Diálogo de seleção de arquivo é uma das diálogo um diálogo zenity muito útil, suporte a arquivos abertos ou salvar o arquivo.
Use a opção -file-select para criar uma janela de seleção de arquivos. Zenity retorna os arquivos selecionados ou diretórios para a saída padrão. O modo padrão da caixa de diálogo de seleção de arquivo é aberto.
A caixa de diálogo de seleção de arquivo suporta as seguintes opções:
-filename = Filename
Especifica o arquivo ou pasta que está selecionado na caixa de diálogo de seleção de arquivos quando o diálogo é exibido pela primeira vez.
-multiple
Permite a seleção de vários nomes de arquivos na janela de seleção de arquivos.
-directory
Permite apenas a seleção de diretórios no diálogo de seleção de arquivo.
-save
Defina o diálogo de seleção de arquivo em modo de economia.
-separator = separator
Especifica a cadeia que é usada para dividir a lista retornada de nomes de arquivos.


#!/bin/bash

FILE=`zenity --file-selection --title="Select a File"`
case $? in
0)
echo ""$FILE" selected.";;
1)
echo "No file selected.";;
-1)edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # zenity  --list  --checklist  --column "Buy" --column "Item" TRUE Maçãs TRUE Laranjas FALSE Peras FALSE Cambuci FALSE Pitanga FALSE Araça >> ListaCompras.txt
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # cat ListaCompras.txt
Maçãs|Laranjas|Cambuci
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson #
echo "No file selected.";;
esac
done


Caixa de Shutdown
# diga ciao pro seu PC

#usando o zenity

zenity --question --title "Confirma o Desligamento" 
--text "Tem certeza"

if [ "$?" -eq "0" ]
then
        # Do shutdown at here.
        #Ubuntu probably needs gksudo instead of sudo
        sudo init 0;
fi















Google Chrome profile selector
Google Chrome profile manager usando o zenity para o profile input. Ponha isso num shell script e então use o path pra ele como o comando field no gnome/kde shortcut. Quando você começar você será promptado por profile para usar se deixar em branco sera mantido o profile padrão
Exemplo:

/opt/google/chrome/google-chrome --user-data-dir=$HOME/.config/google-chrome/`zenity 
--entry --text="Enter a profile name:"`








Outro grande exemplo encontrado no http://www.tildehash.com/?article=advanced-application-shortcuts-with-zenity
Este exemplo mostra um arquivo de diálogo de navegação a partir da qual você pode selecionar um arquivo para editar, então ele abre uma janela de caixa de texto onde você pode digitar ou colar texto, quando você clicar em "Fechar" outro diálogo de navegação de arquivos é exibida onde você pode selecionar o arquivo onde você gostaria de salvar as modificações, ele pode ser
      Display a weekly shopping list in a check list dialog with  Apples  and
       Oranges pre selected

              zenity  --list  --checklist  --column "Buy" --column "Item" TRUE
              Apples TRUE Oranges FALSE Pears FALSE Toothpaste
o arquivo original, um arquivo diferente, ou um arquivo inexistente.

#!/bin/bash
#Author tirado da WEB
zOpenPath="$(zenity --file-selection)"
if [ "$zOpenPath" != "" ]
then
zData=$(cat "$zOpenPath")
zNewData=$(echo -n "$zData" | zenity --text-info --editable --width 650 --height 400)
zSavePath=$(echo -n "$(zenity --file-selection --filename="$zOpenPath" --save --confirm-overwrite)")
echo -n "$zNewData" > "$zSavePath"
fi

done

 Exibindo uma caixa para seleção de itens redirecionando o resultado para um arquivo texto
      Maças e Laranjas estão preselecionadas = true
 zenity  --list  --checklist  --column "Buy" --column "Item" TRUE Maçãs TRUE Laranjas FALSE 
Peras FALSE Cambuci FALSE Pitanga FALSE Araça >> ListaCompras.txt




edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # zenity  --list  --checklist  --column "Buy" --column "Item"TRUE Maçãs TRUE Laranjas FALSE Peras FALSE Cambuci FALSE Pitanga FALSE Araça >> ListaCompras.txt

EXIBINDO O ARQUIVO listaCompras.txt
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # cat ListaCompras.txt
Maçãs|Laranjas|
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # 
Dialog options


       --calendar
              Display calendar dialog

       --entry
              Display text entry dialog

       --error
              Display error dialog

       --file-selection
              Display file selection dialog

       --info Display info dialog

       --list Display list dialog

       --notification
              Display notification icon

       --progress
              Display progress indication dialog

       --question
              Display question dialog

       --text-info
              Display text information dialog

       --warning
              Display warning dialog


       General options


       --title=TITLE
              Set the dialog title

       --window-icon=ICONPATH
              Set the window icon

       --width=WIDTH
              Set the dialog width

       --height=HEIGHT
              Set the dialog height

       Calendar options


       --text=STRING
              Set the dialog text

       --day=INT
              Set the calendar day

       --month=INT
              Set the calendar month

       --year=INT
              Set the calendar year

       --date-format=STRING
              Set the format for the returned date


       Text entry options


       --text=STRING
              Set the dialog text

       --entry-text=STRING
              Set the entry text

       --hide-text
              Hide the entry text


       Error options

       --text=STRING
              Set the dialog text


       File selection options

       --filename=FILENAME
              Set the filename

       --multiple
              Allow selection of multiple filenames in file selection dialog

       --separator=SEPARATOR
              Specify separator character when returning multiple filenames


       Info options

       --text=STRING
              Set the dialog text


       List options


       --text=STRING
              Set the dialog text

       --column=STRING
              Set the column header

       --checklist
              Use check boxes for first column

       --radiolist
              Use radio buttons for first column

       --separator=STRING
              Set output separator character

       --editable
              Allow changes to text

       --print-column=STRING
              Specify what column to print to standard output. The default  is
              to  return  the  first  column.  ’ALL’  may be used to print all
              columns.


       Notification options


       --text=STRING
              Set the notification text


       Progress options


       --text=STRING
              Set the dialog text

       --percentage=INT
              Set initial percentage

       --auto-close
              Close dialog when 100% has been reached

       --pulsate
              Pulsate progress bar

              Question options

       --text=STRING
              Set the dialog text


       Text options


       --filename=FILENAME
              Open file

       --editable
              Allow changes to text


       Warning options


       --text=STRING
              Set the dialog text


       Miscellaneous options


       -?, --help
              Show summary of options.

       --about
              Display an about dialog.

       --version
              Show version of program.


       Also the standard GTK+ options are accepted.



Nenhum comentário:

Postar um comentário

Megacubo par Linux e Wnidows - Assistir TV no Computador

                            MEGACUBO PARA LINUX Ola!! Neste  post vamos falar  um pouquinho sobre o  Megacubo, um tradicional programa ...