USANDO O CONKY

O Conky é um gadget para desktop que mostra informações da sua máquina em tempo real diretamente na tela do monitor. É leve e pode ser usado por máquinas mais fraquinhas ou por aqueles usuários que não gostam ou queiram usar outros programas do tipo, como o ScreenLets ou o gDesklets. O Conky é em modo texto e funciona através de scripts, mas ele mostra as informações de modo elegante e pouco deixam a dever em desempenho aos equivalentes mais pesados. Uma configuração básica do Conky podemos ver na figura abaixo:



Para instalá-lo, basta abrir o Terminal e digitar " sudo apt-get install conky " ou então ir no Synaptics e mandar procurar por Conky, selecionando-o para instalação. Uma vez instalado, vamos a algumas configurações básicas. Vamos usar aqui o script que mostra as informações mostradas na figura acima e vamos ver também como implementar novas funções. Abra o Terminal e digite " sudo gedit .conkyrc " e cole no arquivo de texto aberto o conteúdo abaixo e salve-o:

# 9ooo1_simple_conkyrc_v0.2

# --- Window Layout & Options --- #
own_window yes
own_window_colour brown
own_window_transparent yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
use_spacer right
use_xft yes
alignment top_right
gap_x 10
gap_y 30

# --- Colours, Sizes, Fonts & Margins --- #
update_interval 1.0
maximum_width 260
stippled_borders 3
border_margin 9
border_width 10
default_color B1B1B1

# --- Text --- #
draw_outline no
draw_borders no
font Arial:size=9:weight=bold
uppercase no
draw_shades yes

TEXT

${alignc}${time %A},${time %e} de ${time %B} de ${time %G}

${alignc}${time %H:%M:%S}

$nodename ${alignr} Tempo ligado: $uptime

Sistema: $kernel em uma máquina $machine

${alignc}${execi 99999 cat /proc/cpuinfo | grep "model name" -m1 | cut -d":" -f2 | cut -d" " -f2- | sed 's#Processor ##'}
Frequência: ${freq_g 2}GHz ${alignr}
Uso do processador: ${cpu cpu1}%
Processos: $running_processes/$processes
${cpugraph cpu1 25,260 000000 93C9EB}
${cpubar cpu1 10,260 000000 93C9EB}

Temperatura do processador: ${hwmon 0 temp 2}°C
Temperatura do sistema: ${hwmon 0 temp 1}°C


Memória RAM ${membar 5}
Usada: $mem $alignr Total: $memmax

Partição Swap ${swapbar 5}
Usada: $swap $alignr Total: $swapmax



Disco do Linux ${fs_bar 5 /}
Livre: ${fs_free /} $alignr Usado: ${fs_used /}

Disco do Windows ${fs_bar 5 /media/disk}
Livre: ${fs_free /media/disk} $alignr Usado: ${fs_used /media/disk}



$alignc ppp0 (${addr ppp0})
Download: ${downspeed ppp0} KB/s${alignr} Upload: ${upspeed ppp0} KB/s
${downspeedgraph ppp0 25,120 000000 93C9EB} ${alignr}${upspeedgraph ppp0 25,120 000000 93C9EB}$color
Total: ${totaldown ppp0} ${alignr}Total: ${totalup ppp0}

Agora vamos ver o que cada linha ou grupo de comandos faz nesse script. O que vai nos interessar é o que está presente do item TEXT para baixo. Vamos a eles, primeiro, a parte de Sistema:



1- ${alignc}${time %A},${time %e} de ${time %B} de ${time %G} : mostra a data completa do sistema;
2- ${alignc}${time %H:%M:%S} : mostra a hora do sistema;
3- $nodename ${alignr} Tempo ligado: $uptime : mostra o nome da máquina e o tempo que ela está ligada;
4- Sistema: $kernel on $machine : mostra o kernel usado no sistema;
5- ${alignc}${execi 99999 cat /proc/cpuinfo | grep "model name" -m1 | cut -d":" -f2 | cut -d" " -f2- | sed 's#Processor ##'} : mostra qual o processador da máquina, tipo e velocidade;
6- Frequência: ${freq_g 2}GHz ${alignr} : mostra a frequência de clock real da máquina;
7- Uso do processador: ${cpu cpu1}% : mostra o uso do processador, em %;
8- Processos: $running_processes/$processes : mostra o número de processos do sistema;
9- ${cpugraph cpu1 25,260 000000 93C9EB} : monta um gráfico de uso da CPU;
10- ${cpubar cpu1 10,260 000000 93C9EB} : monta uma barra de uso da CPU;    
 
Agora, vamos ver a parte de temperatura do sistema:



1- Temperatura do processador: ${hwmon 0 temp 2}°C : mostra a temperatura do processador. Aqui há uma particularidade, para acertar a temperatura correta do processador, os números do ítem
hwmon 0 temp 2 devem ser mudados e experimentados até achar uma combinação que mostre a temperatura certa. Por exemplo, hwmon 0 temp 1 ou hwmon 0 temp 3 ou hwmon 1 temp 0 ou hwmon 1 temp 2 e por aí vai;
2- Temperatura do sistema: ${hwmon 0 temp 1}°C : mostra a temperatura do sistema, ou seja, do interior do gabinete. E assim como o item de cima, é necessário mudar os números do item hwmon 0 temp 1 nos mesmos moldes mostrados acima;

Agora, o uso da memória e dos discos rígidos:


1- Memória RAM ${membar 5} : mostra uma barra de uso da memória;
2- Usada: $mem $alignr Total: $memmax : mostra respectivamente a memória usada e a memória total do sistema;
3- Partição Swap ${swapbar 5} : mostra uma barra de uso da partição Swap;
4- Usada: $swap $alignr Total: $swapmax : mostra respectivamente a Swap utilizada e a Swap total do sistema;
5- Disco do Linux ${fs_bar 5 /} : mostra uma barra de uso da partição root do Linux;
6- Livre: ${fs_free /} $alignr Usado: ${fs_used /} : mostra respectivamente o espaço livre e usado do disco com Linux;
7- Disco do Windows ${fs_bar 5 /media/disk} :  mostra uma barra de uso do disco com Windows;
8- Livre: ${fs_free /media/disk} $alignr Usado: ${fs_used /media/disk} : mostra respectivamente o espaço livre e usado do disco com Windows;

Algumas observações: nessa configuração, a máquina tem dois discos, um com Linux e outro com Windows. Para poder mostrar o disco do Windows (media/disk), além da partição ter que estar montada, o caminho do disco do Windows tem que ser mostrado no /media; assim, se a máquina tiver mais discos, o item deve ser mudado de acordo com o que aparece na pasta /media, que pode ser /media/disk-1, /media/disk-2 e por aí vai. Você pode colocar tantos discos quantos tenha na sua máquina, bastando acrescentar as linhas
${fs_bar 5 /media/disk} (para montar a barra de uso) e Livre: ${fs_free /media/disk} $alignr Usado: ${fs_used /media/disk} (para mostrar em números o espaço livre e usado) de acordo com o número de discos que você tenha.
Se você tiver várias partições na sua instalação de Linux, como a /home, a /var e outras no seu Linux, para mostrá-las basta adicionar a linha
Livre: ${fs_free /} $alignr Usado: ${fs_used /}  mudando o sinal " / " para a partição específica. Por exemplo, Livre: ${fs_free /home} $alignr Usado: ${fs_used /home} vai mostrar o espaço livre e o espaço usado da partição /home.

Agora, vamos ao uso da Internet:



1- $alignc ppp0 (${addr ppp0}) : mostra o IP da conexão. Mude o item addr ppp0 de acordo com a sua conexão; se for via cabo ou rede, troque o ppp0 para eth0; então ficaria $alignc eth0 (${addr eth0}) para quem usa internet a cabo, por exemplo;
2- Download: ${downspeed ppp0} KB/s${alignr} Upload: ${upspeed ppp0} KB/s : mostra as taxas de download e upload da conexão;
3- ${downspeedgraph ppp0 25,120 000000 93C9EB} ${alignr}${upspeedgraph ppp0 25,120 000000 93C9EB}$color : mostra um gráfico das taxas de download e upload da conexão;
4- Total: ${totaldown ppp0} ${alignr}Total: ${totalup ppp0} : mostra o total baixado e 'subido' na sessão.


Isso mostrado aqui é apenas o básico, mostrando funções básicas da máquina na tela do micro. Outros scripts ou itens podem ser achados no site GnomeLook, onde podemos achar itens como notificador de mails, player de áudio, calendário, previsão de tempo e por aí vai.

Pra ativar o Conky, basta abrir o Terminal e digitar " conky " e depois fechar o terminal. Se você quer que ele seja inicializado junto com o sistema, faça o seguinte:

1- Abra o terminal e digite " gedit .conky_start.sh ", cole do documento aberto as linhas e salve o arquivo:

#!/bin/bash

sleep 15 && conky

2- Ainda no terminal, digite " sudo chmod +x .conky_start.sh " para dar permissão de execução ao arquivo;
3- Vá no menu de aplicativos/Sistema/Preferências/Sessões; na janela que abrir, clique em Adicionar e em Comando, coloque " /home/usuario/.conky_start.sh " onde usuario é a sua pasta de usuário. Por exemplo, se o seu nome de usuário é xupeta, o comando ficaria " /home/xupeta/.conky_start.sh ". Clique em OK e marque o item na janela de Sessões para que ele se inicie junto do sistema.

Caso você não consiga fazer funcionar os itens de temperatura do processador, sistema, velocidade do cooler e tal (aparece um erro no terminal de " no such file or directory "), você precisa instalar os pacotes lm-sensors e xsensors abra o Synaptics e mande procurar por " lm-sensors " e " xsensors ", selecione-os para instalação (e as dependências eventuais) e clique em Aplicar. Pronto, agora você tem que abrir o Terminal e digitar nele "sudo sensors-detect " para que o programa detecte os itens de hardware referentes ao monitoramento da sua máquina, ou seja, detectar que circuito (ou circuitos) da placa-mãe é o responsável pelo monitoramento apresentado pela BIOS da máquina. Basta dar YES, SIM ou OK nas perguntas que forem feitas e escolha SIM ou YES também quando lhe for perguntado se deseja que as novas configurações sejam colocadas na inicialização do sistema. Reinicie a máquina e tente outra vez as configurações do Conky para ver se as medidas aparecem como deviam e, caso negativo, vá mudando os parâmetros conforme mostrados nesse tutorial.


Se você quiser colocar um "totalizador" de dados da internet, mostrando itens como o que foi baixado ou "upado" (down/up) ontem, hoje, durante a semana e durante o mês, basta colar o texto a seguir logo abaixo da parte de conexão de internet do script do Conky:

Ontem: ${execi 3600 vnstat -i ppp0 | grep "yesterday" | awk '{print $2 $3}'}${goto 142}Ontem: ${execi 3600 vnstat -i ppp0 | grep "yesterday" | awk '{print $5 $6}'}
Hoje: ${execi 300 vnstat -i ppp0 | grep "today" | awk '{print $2 $3}'}${goto 142}Hoje: ${execi 300 vnstat -i ppp0 | grep "today" | awk '{print $5 $6}'} 
Semana: ${execi 3600 vnstat -w -i ppp0 | grep "current week" | awk '{print $3 $4}'}${goto 142}Semana: ${execi 3600 vnstat -w -i ppp0 | grep "current week" | awk '{print $6 $7}'}
No mês: ${execi 3600 vnstat -m -i ppp0 | grep -m 99 "'09" | awk '{print $3 $4}'}${goto 142}No mês: ${execi 3600 vnstat -m -i ppp0 | grep -m 99 "'09" | awk '{print $6 $7}'}

Os itens em preto vão aparecer apenas como texto no Conky; os itens em vermelho devem ser mudados de acordo com a sua conexão, para eth0 caso sua conexão seja direta ou ppp0 caso seja adsl. Uma vez colocado o texto e salvo o arquivo, você precisa instalar um pacote chamado vnstat, que é o totalizador de dados em si. Abra o Terminal e digite:

sudo apt-get install vnstat

Depois de instalado, ainda no Terminal digite " sudo vnstat -u -i ppp0" ou " sudo vnstat -u -i eth0 " (para criar uma base de dados para a conexão usada) e depois " sudo vnstat -q " (para confirmar se a base de dados foi criada). Pronto, tudo certo para funcinar, basta dar um " killall conky " no Terminal e depois chamar o Conky de novo para ver os novos itens sendo mostrados na tela.

Já há uma nova versão do vnstat, basta clicar aqui e baixar a versão mais nova. Para instalá-la, desinstale a versão anterior usando o Synaptic, abra o Terminal e digite "killall vnstat" e "killall vnstatd"; depois, descompacte o arquivo baixado, entre nela pelo Terminal e digite "make" para compilar o programa e "sudo make install" para instalá-la. Depois digite "vnstatd" para iniciar o deamon do programa e "sudo vnstat -u -i ppp0" para conexões adsl ou "sudo vnstat -u -i eth0" para conexões via rede ou cable modem.

A última linha do vnstat no Conky vai mostrar, no consumo mensal, o valor do down e up dos meses passados também e isso pode deixar a exibição do log no Conky com as linhas bagunçadas. Se você quiser que o Conky mostre apenas o total do mês corrente (e não os meses anteriores), basta trocar a última linha do Conky:

No mês: ${execi 3600 vnstat -m -i ppp0 | grep -m 99 "'09" | awk '{print $3 $4}'}${goto 142}No mês: ${execi 3600 vnstat -m -i ppp0 | grep -m 99 "'09" | awk '{print $6 $7}'}

Por essa aqui:

No mês: ${execi 300 vnstat -m | grep "`date +"%b '%y"`" | awk '{print $3 $4}'}    No mês: ${execi 300 vnstat -m | grep "`date +"%b '%y"`" | awk '{print $6 $7}'}

Salve o arquivo e pronto.

Se você quiser colocar um sensor de temperatura para o seu disco rígido, basta colocar o seguinte texto no arquivo de configuração do Conky, de preferência logo abaixo da parte que mostra o espaço em disco e coisas e tal do disco que se quer monitorar:

Temperatura do disco: ${hddtemp /dev/sdb}

Também vai ser necessário a instalação do pacote hddtemp, basta digitar no Terminal " sudo apt-get install hddtemp "; depois de instalado, basta colocar no script (/dev/sdb) o item relacionado ao seu disco rígido. Faça os testes digitando no Terminal " sudo hddtemp /dev/sda ou /dev/sdb etc ou /dev/hda ou /dev/hdb etc até achar algo que dê a seguinte saída de texto (vai variar de máquina para máquina):

sidnei@sidnei-desktop:~$ sudo hddtemp /dev/sdb
[sudo] password for sidnei:
/dev/sdb: WDC WD400BB-23JHC0: 42°C

Quando for mostrado a temperatura corretamente, é esse item escolhido em /dev/ que deve ser colocado no script. Você pode monitorar mais de um disco rígido sem problemas, apenas não esqueça de habilitar o S.M.A.R.T. na bios da sua placa-mãe pro programa poder funcionar.

Agora vamos colocar um script para que o Conky fique monitorando uma conta do Gmail. Abra o Terminal e crie uma pasta chamada .script (é para ser oculta mesmo). Se ainda não sabe, basta digitar sem as aspas " mkdir ~/.scripts "; depois, ainda no Terminal, digite " gedit ~/.scripts/gmail.py " e, na janela de texto que aparecer, coloque o seguinte:

import os
import string

#Digite o seu nome de usuário e senha abaixo dentro de aspas na parte identificada em vermelho
# Por exemplo, se o seu e-mail for piririri2002@gmail com e a senha 123456,
#o username será piririri2002 e a password será 123456.

username="username"
password="password"

#Não mude nada nesta linha abaixo!

com="wget -O - https://"+username+":"+password+"@mail.google.com/mail/feed/atom --no-check-certificate"

#Se você tiver conhecimentos de Python, pode fazer o que quiser daqui pra baixo.

temp=os.popen(com)
msg=temp.read()
index=string.find(msg,"<fullcount>")
index2=string.find(msg,"</fullcount>")
fc=int(msg[index+11:index2])

if fc==0:
   print "Sem novas mensagens"
else:
   print str(fc)+" mensagem(ns) nova(s)"

Como explica no próprio script, em username (apenas onde está em vermelho e entre aspas) você deve colocar o seu nome de usuário do Gmail SEM o @gmail.com; e em password a sua senha de acesso ao Gmail. Depois disso, salve o arquivo e, ainda no Terminal, digite " chmod a+x ~/.scripts/gmail.py " para dar status de arquivo executável ao mesmo. Feito isso, vá no seu script do Conky e arrume um lugar no mesmo para colocar o seguinte comando:

Gmail - ${color 95956B} ${execi 300 python ~/.scripts/gmail.py} ${color FFFFFF}
 
No meu Conky eu coloquei o comando antes do item de conexão de internet. Com isso, mate a operação do Conky (killall conky) e depois o ative de novo (conky) e veja se o script funciona, aparecendo "Sem novas mesngens" se não houver mensagens ou então o número de mensagens não lidas na caixa de entrada.

Agora vamos colocar um calendário no Conky, abra o Terminal, digite sem as aspas " gedit ~/.conkyrc " e coloque as seguintes linhas ao final do arquivo:

CALENDÁRIO ${hr 2}
${font DejaVu Sans:pixelsize=10}${alignc}${execi 60 date +"%B %Y" | tr "[:lower:]" "[:upper:]"}${font Snap.se:size=8 }${font}
${font DejaVu Sans Mono:size=10}${execpi 60 cal | sed '1d' | sed '3d' | sed '2d' | sed '2d' | sed '2d' | sed '2d' | sed '2d' | sed 's/^/${alignc} /'}${font}
${font DejaVu Sans Mono:size=10}${execpi 60 DJS=`date +%_d`; cal | sed '1d' | sed '/./!d' | sed 's/$/                    /' | fold -w 21 | sed -n '/^.\{21\}/p' | sed 's/^/${alignc} /' | sed /" $DJS "/s/" $DJS "/" "'${color1}'"$DJS"'${color0}'" "/}${font}

Salve o arquivo, mate e depois reinicie o Conky. O problema é que, se você está colocando todas essas opções no seu conkyrc, vai começar a ficar sem espaço para exibi-los ainda mais se o seu monitor for widescreen. Então o jeito é dividir o script ou configurá-lo para mostrar os itens em outras partes do monitor, mas isso fica pra outra vez...

Se você usa o KDE e está com problemas no Conky, dá uma olhada aqui.