BigBashView, interface gráfica para o seu shell script



BigBashView, interface gráfica para o seu shell script

Autor: Bruno Gonçalves Araujo <bigbruno at gmail.com>
Data: 04/08/2009

Explicação inicial

É inegável a capacidade do terminal no Linux, mas existem operações que são mais práticas feitas em modo gráfico, além de tornar facilmente utilizável por qualquer usuário, mesmo os com pouca experiência em informática.
No KDE3 tínhamos o Kommander que disponibilizava um sistema para criar interfaces gráficas que se comunicam diretamente com o terminal, porém no KDE4 estava em falta algo realmente eficiente.
Nós do BigLinux precisávamos de uma solução, opções como Kdialog e Zenity são simplistas demais para o que precisamos, por isso criamos o BigBashView, que tem se mostrado muito eficiente, inclusive mais que o Kommander.
Estamos convidando a todos que têm interesse em desenvolver interfaces e programas gráficos para Linux a conhecer essa ferramenta, inclusive de outras distribuições.
Lembro também que os painéis desenvolvidos para o BigLinux podem ser instalados no Kubuntu e também no Ubuntu e seus outros derivados, porém irão instalar também a biblioteca QT4.
O BigBashView permite que o próprio usuário, com alguma experiência em Shell Script, desenvolver seus próprios painéis.

Instalando o BigBashView

Adicione a seguinte linha ao arquivo /etc/apt/sources.list:

deb http://www.biglinux.net/packages jaunty main

Adicione a chave pública com o seguinte comando no terminal:
$ wget http://www.biglinux.net/packages/biglinux.key -O- | sudo apt-key add –
Recarregue o Synaptic e instale o bigbashview ou então no terminal dê os seguintes comandos:
$ sudo apt-get update
$ sudo apt-get install bigbashview

Uma alternativa para instalar é diretamente pelo código fonte do SVN:

Visão geral

O BigBashView é uma interface para o terminal Bash que renderiza a saída do terminal utilizando QTwebkit.
Uma forma fácil e rápida para criar interfaces em sistemas Linux.
Para quem desenvolve sites em PHP irá notar diversas similaridades, veja um exemplo de “Hello World” para o BigBashView, faça um arquivo com a extensão .sh utilizando qualquer editor de texto e marque-o como executável:

#!/bin/bash
echo “Hello World”

Agora pelo terminal chame-o pelo BigBashView da seguinte forma:
$ bigbashview /home/biglinux/teste.sh
Nesse caso estamos utilizando o arquivo teste.sh na pasta /home/biglinux, é importante lembrar que é preciso utilizar o endereço completo do arquivo para abrir no bigbashview, não basta entrar na pasta /home/biglinux e dar o comando “bigbashview teste.sh”.
Então o resultado será:

Linux: BigBashView, interface gráfica para o seu ShellScript

Veja um exemplo de programa feito utilizando BigBashView:

Linux: BigBashView, interface gráfica para o seu ShellScript

Portanto tudo que vai para a saída do terminal, ou seja, o que nós vemos ao executar um comando no terminal, será direcionado para o BigBashView, que irá utilizar QTwebkit para renderizar esse código recebido como se fosse um site.

Características importantes

Ao desenvolver utilizando BigBashView lembre dessas características:
1. Os arquivos interpretados devem utilizar extensão .sh e estarem marcados como executáveis.
2. Executar um script sem que o usuário seja enviado para outra página, por exemplo, um botão que abra o navegador Firefox. Utilize arquivos com a extensão .run e também lembre de marcá-los como executáveis, basta criar um link normal utilizando link com a extensão .run.
3. A dica 2 utiliza um exemplo simples, mas deve ser utilizada apenas em casos mais complexos, nesses mais simples utilize o arquivo /usr/share/bigbashview/run.run, ele foi criado justamente para essas situações, veja um exemplo de uso: Abrir Firefox
4. O BigBashView lê o resultado do terminal apenas ao final do script .sh, portanto se um comando no meio fizer parar o script, por exemplo executar o programa kppp, o painel ficará travado até que o kppp seja encerrado, para contornar isso é necessário fazer esse programa se comportar como um daemon, veja o exemplo com o kppp, pode ser adaptado a qualquer outro comando ou programa:

nohup kppp 2> /dev/null > /dev/null &

5. Incluir ícone de identificação da janela, basta incluir um -i e o endereço do ícone, veja no exemplo:
$ bigbashview /usr/share/bigcontrolcenter/categories/internet/dns/dns.sh -i /usr/share/bigcontrolcenter/categories/internet/dns/dns.sh
6. Especificando o tamanho da janela ao abrir, por padrão a janela possui tamanho 640×480, porém você pode especificar o tamanho das seguintes formas:

  • bigbashview -s 800×600 – alterando o 800×600 para o tamanho que preferir;
  • bigbashview -w maximized – para a janela abrir maximizada;
  • bigbashview -w fullscreen – para abrir em tela cheia.

7. O BigBashView possui problemas para trabalhar com frames, portanto utilize DIV quando necessário.
8. O suporte a método POST não funciona, utilize o método GET.

Crie seu primeiro painel para o BigControlCenter

O BigControlCenter é o Centro de Controle do BigLinux, esse post dará dicas de como criar uma nova opção para esse Centro de Controle.
As separações são feitas nas seguintes categorias: 3d hardware help internet others servers system themes.
Todas estão na pasta: /usr/share/bigcontrolcenter/categories/
Exemplo de como criar seu painel de configuração compatível com o BigControlCenter. Nesse exemplo vamos analisar o painel de DNS, que está na categoria internet, portanto a sua pasta é: /usr/share/bigcontrolcenter/categories/internet/dns
Nessa pasta estão localizados os seguintes arquivos, clique sobre os nomes para ver o código fonte correspondente:
description.sh:
Um arquivo padrão que deve estar em todos os painéis, seu conteúdo será utilizado para que ele seja exibido no BigControlCenter, portanto altere as variáveis apontando para o painel que está criando.
dns.sh:
Esse arquivo pode ter qualquer outro nome que seja fácil de identificar, é o arquivo inicial do painel, o seu nome deve ser especificado no description.sh na variável exec_application.
submit.sh:
É o arquivo que recebe as instruções do dns.sh e aplica a configuração selecionada, exibindo também a tela de configuração aplicada ao usuário, seu nome pode variar, mas é bom manter esse nome por padrão, lembre também que ao alterar o nome desse arquivo é preciso também alterar o endereço do form action no arquivo dns.sh.
Nos arquivos dns.sh e submit.sh já estão inclusos cabeçalho, rodapé e formatações padrões, portanto recomendo que ao desenvolver novos painéis compatíveis com o BigControlCenter, utilize esse pacote como base, comece alterando os valores das variáveis apresentadas nos arquivos e depois crie o que achar necessário.

Dicas e curiosidades

A linha “. /usr/share/bigcontrolcenter/default/theme-categories.sh” importa toda a base do tema, mas ela não é estática, as cores de fundo, texto, link, tamanho e tipo de fonte são importados do tema do KDE4, tornando o painel sempre com uma interface bem integrada ao sistema.
Existem alguns arquivos já inclusos no BigControlCenter que estão disponíveis na pasta /usr/share/bigcontrolcenter/default, entre eles está o Jquery.

Linux: BigBashView, interface gráfica para o seu ShellScript Linux: BigBashView, interface gráfica para o seu ShellScript

Exemplos e mais informações

Para conferir exemplos e mais informações, visite:

Caso encontre formas de melhorar o sistema, peço que informe pelo fórum do BigLinux para que continuemos a evoluir o BigBashView, que tem se mostrado bastante eficiente na criação de interfaces gráficas para o Bash.

Leia mais em: http://www.vivaolinux.com.br/artigo/BigBashView-interface-grafica-para-o-seu-shell-script/

Publicado em 7 de julho de 2011, em Vivaolinux. Adicione o link aos favoritos. Deixe um comentário.

Um comentário começa grandes debates!