Pages

Sunday, October 22, 2006

SuperKaramba - Informações básicas do sistema

Bem, agora vamos começar a criar um conjunto de pequenos temas, cada novo post irá apresentar um novo tópico. Juntos, esses pequenos temas constituem a base técnica de muitos dos temas disponíveis na internet. Este post está mais longo do que eu gostaria, mas vi necessidade desses elementos serem apresentados juntos, então, por favor, tenha paciência na leitura. Um problema desse post, e que provavelmente vai se extender por outros posts, é que o tamanho da linha não cabe na tela. Para facilitar o entedimento, eu vou separar o conteúdo por linhas em branco.

Primeiro vamos começar com as informações básicas do sistema, o tema irá apresentar o nome de usuário e do host, a versão do kernel e do kde.

Abra um arquivo texto e cole o conteúdo abaixo. Salve esse arquivo com o nome "info.theme" (ou outro de sua preferência, mas de extensão .theme).
karamba x=160 y=350 w=200 h=60 interval=1000 locked=true

image x=0 y=10 path="icons/kcmsystem.png"

# Informações do sistema
text x=50 y=1 sensor=program program="echo ${USER}@`hostname`" fontsize=12 font="Cure" interval=3600000

text x=95 y=22 sensor=program program="uname -r" fontsize=9 font="Cure" interval=3600000

text x=95 y=32 sensor=program program="kde-config --version | grep KDE | sed -e 's/.*: //'" line=1 fontsize=9 font="Cure" interval=3600000

text x=50 y=22 value="Kernel:" fontsize=9 font="Cure" interval=3600000

text x=50 y=32 value="KDE:" fontsize=9 font="Cure" interval=3600000
Antes de colocar ele para funcionar, vamos entender o arquivo.

A primeira linha, creio que já tenha ficado claro. Assim como a segunda, que declara a imagem. Adapte as suas necessidades, e cuidado com o caminho da imagem, tire suas dúvidas no post anterior.

A terceira linha é nova, é um comentário, ou seja, todo texto que começa com # não é executado, talvez eu devesse ter explicado ela antes, mas agora ela tem uma função mais clara, deixar claro para que serve o bloco de texto abaixo.

Depois, entre a quarta e a oitava linha estão os novos comandos, na verdade o novo comando. Tudo aqui é texto (text) e de dois tipos, o primeiro usando a saída de um programa (sensor=program) e o segundo usando um valor, ou seja, um texto explícito, tal qual está na tela.

Então, vamos por parte:
text x=50 y=1 sensor=program program="echo ${USER}@`hostname`" fontsize=12 font="Cure" interval=3600000
  • text: saída é tipo texto (e não imagem)
  • x e y : novamente a posição do texto, a contar (como sempre será) a partir do canto superior esquerdo e relativo ao canto superior esquerdo da área do tema.
  • sensor : esse é um elemento importante, quase todos os recursos do superkaramba/karamba existem devido aos sensores, nesse exemplo ele é do tipo "program" que indica que executaremos um comando como se estivéssemos no terminal. Outros tipos serão abordados depois.
  • program : indica o comando (que pode ser um programa ou script) que será executado. No caso, queremos escrever o conteúdo de "echo ${USER}@`hostname`", isso dará uma saída do tipo mitre@galileu, ou seja, meu nome de usuário e o nome do meu host (hostname).
  • fontsize : determina o tamanho da fonte
  • font : o nome da fonte, assim como o fontsize, pode ser omitido, mas eu recomendo que tenha uma opinião a respeito, nunca sabe o que encontrará no sistema utilizado, e quando define o tamanho da font, por exemplo, evita ter o tema deformado.
  • interval : lembra de quando eu apresentei o interval na primeira linha? É a mesma coisa, a diferença é que esse intervalo é restrito da execução dessa linha, ou seja, da atualização dessa única linha. Por que definimos isso aqui ? Essa informação não vai mudar, então, é interessante que não se pergunte a mesma coisa para o computador 'n' vezes desnecessariamente. No caso, eu coloquei 3600 segundos, ou seja, 1 hora, para executar o comando novamente. Pode usar um tempo maior ou menor, mas nesse caso 1 hora está de bom tamanho.
As duas linhas seguintes são similares a essa anterior, eu vou focar apenas nas diferenças.
text x=95 y=22 sensor=program program="uname -r" fontsize=9 font="Cure" interval=3600000

text x=95 y=32 sensor=program program="kde-config --version | grep KDE | sed -e 's/.*: //'" line=1 fontsize=9 font="Cure" interval=3600000
Diferença principal e trivial, o programa que está sendo executado é outro. Não vou me estender a explicar o porque de cada comando, basta executar cada um no terminal e verá que estamos capturando informações do Kernel e do KDE.

Uma das principais diferenças lógicas está associada ao posicionamento da saída do comando. O que esclarece duas coisas, a primeira é que não importa onde você esteja colocando a linha no arquivo, a ordem de execução não altera a ordem de exibição, para a exibição o que importa são os valores x e y.

A outra principal diferença é o line=1 usado na segunda linha acima, esse comando define que apenas a primeira linha do comando executado será exibida. Você poderia dispensar essa opção e usar um sed ou grep para fazer o serviço, mas com a opção line fica mais Karamba e menos bash.

Por fim, as linhas
text x=50 y=22 value="Kernel:" fontsize=9 font="Cure" interval=3600000

text x=50 y=32 value="KDE:" fontsize=9 font="Cure" interval=3600000
A essa altura, imagino que já tenha imaginado o que elas fazem, a única diferença é a opção "value" e adivinhe, ela guarda um valor que será usado para imprimir na tela. Ou seja, essas linhas escrevem Kernel: e KDE: na posição indicada por x e y.

Com isso, pode colocar o tema para executar e verá algumas informações do sistema na tela. Uma coisa que eu não disse até o momento, é que a cor do texto será "branca", ou seja, adequado para fundos escuros, caso tenha um fundo (wallpaper) de cor "branca" pode não conseguir visualizar o texto. Então é preciso modificar a cor da fonte incluindo a opção "color" em cada linha ou definindo no começo com a linha "defaultfont" uma cor padrão para o arquivo .theme. Pode definir também sua fonte e tamanho de preferência.

Com já disse antes, veremos as possibilidades do superkaramba através de exemplos, basicamente, aplicações diferentes para os sensores e aprender a usar gráficos de barra e linha, além áreas de click.

Technorati Tags:

No comments:

Post a Comment