Bem-vindo: Sáb, 23 de Novembro 2024, 11:47 Pesquisa avançada

Iniciantes Conky

Publique aqui o programa que acabou de conhecer! Questione aqui alguma opção de algum programa ou sobre a sua própria instalação!

Iniciantes Conky

Mensagempor MarceloH » Sex, 5 de Agosto 2011, 5:23

Tomei a liberdade de abri esse tópico para ajudar aos iniciantes que queiram configurar um conky.
Eu apenas apontarei links para artigos sobre configuração e tentarei complementar com algumas coisas que eu não conseguir encontrar pela internet e tive que aprender com a prática, se alguém tiver mais algumas dicas elas serão bem vindas. ;)

Primeiro passo é instalar e configurar o conky e esse artigo ensina bem sobre isso: http://www.vivaolinux.com.br/artigo/Monitore-o-seu-Linux-com-o-Conky

Cada arquivo de configuração conkyrc abre um conky diferente, voce pode nomear eles como conkyrc1, conkyrc2... ou qualquer outro nome, e guarda-los em qualquer pasta onde tenha acesso ao usuario com o comando:

Código: Selecionar todos
conky -c /onde/está/conkyrc &


Você pode iniciar ele manualmente pelo terminal ou criar um script de inicialização, para que seu conky seja aberto no inicio da sessão:
Basta criar um arquivo em branco com os comandos e marcar ele como executável:

Código: Selecionar todos
 #!/bin/bash
sleep 50 && conky -c ~/local/onde/está/conkyrc &


Este arquivo de configuração é composto por dois comandos, o sleep e o conky.
Uma coisa que faz o conky dar um efeito desagradável na area de trabalho é ele insistir em ficar sobre as janelas quando é inicializado jundo com a sessão do usuário, para resolver esse problema basta fazermos com que ele seja o ultimo a ser execultado, e para isso usamos o sleep 50.
O sleep simplesmente dá uma pausa de certo tempo antes de iniciar o próximo comando do script, você pode fazer com que ele espere segundos, minutos, horas, dias, semanas, meses, anos, séculos e até milênios. :lol:
No caso do nosso script a espera é de 50 segundos.
Se você notar que o conky está demorando muito para iniciar basta reduzir o numero, mas se por outro lado ele inicializar antes que os painéis gnome, kde ou afins ele vai impedir a visualização da área de trabalho. :(
O comando conky -c inicia o conky e indica para ele que deve usar um arquivo apontado na sua frente, caso usemos algum arquivo inexistente ou apontemos um local errado o conky irá simplesmente iniciar usando o arquivo padrão .conkyrc localizado na pasta home do usuário.
E para finalizar o sudo serve apenas para não termos problemas com permissões de acesso. (Tira o sudo, melhor sem ele =)
Podemos colocar várias linhas "sudo sleep 50 && conky -c ~/local/onde/está/conkyrc &" apontando para arquivos de configurações diferentes e fazer do nosso desktop um conkeyral. :lol:

Mais sobre instalação e colocando o conky para iniciar junto com a sessão: http://ubuntued.info/conky-o-gestor-de-sistema-para-a-area-de-trabalho


Podemos fazer nossos próprios conkys do zero ou modificar alguma configuração que encontramos em algum forum ou no bau da vovó :)
Lugares conde eu encontrei alguns bacanas são:
Se encontrar mais algum eu atualizo a lista :D

O conky permite muitas possibilidades de configuração usando inumeras fontes do sistema, ultilizar o sistema weather para ter informações sobre o clima e chamar scripts de "aneis de lua", para criar os mais diversos efeitos utilizando o cairo. (Basicamente eu sou um iniciante do conky, tenho agora uns 5 dias de vôo nessa aeronave, depois farei mais atualizações com o que eu aprender :OK:

Fontes

Imagem


Com as fontes é possível colocar ícones interessantes nos conky, que vão desde logos até imagens dos dispositivos.
Várias vezes os conkys aparece desconfigurados e com algarismos estranhos por todo o widget, muitas vezes isso acontece apenas por faltar algumas fontes especificadas nas configurações e para resolver isso basta apenas procurar e instalar a fonte que está faltando.

Geralmente procuramos linhas como:
${font OpenLogos:size=16}t${font}

No caso acima a fonte que devemos instalar é a OpenLogos que pode facilmente ser encontrada com uma pesquisa "google".
É também interessante procurar no sit em que encontramos essas fontes, alguma ilustração dos ícones que cada letra nos oferece e assim, personalizamos o conky com icones diferente, modificando o size para mudar o tamanho do ícone e até mudar as cores com um ${color #código hexa da cor}. :OK:

Elias: A maneira mais facil para se instalar várias fontes de uma unica vez é colocar todas na pasta /usr/share/fonts e rodar o comando
fc -fv


O fc procura fontes em cada pasta do sistema e do usuário que rodou o comando, -fv força a verificação de cada pasta e o v é para modo verbose, assim podemos verificar se as fontes desejadas foram mesmo encontradas.
As fontes podem também ser colocadas na pasta do usuário, porem elas estarão disponíveis apenas para aquele usuário.


Problemas com caracteres?

Imagem


Cedilhas, til (acento fonético) e outros caracteres não estão legais?
Esses são os caracteres latinos, que estão presentes apenas nas línguas derivadas do Latin; espanhol, português, francês, italiano romeno...
O link abaixo mostra como resolver o problema.
http://ubuntued.info/como-ter-o-conky-com-caracteres-especiais-latinos
(o link estava meio escondido entre o texto, então com a dica de Claudio Novais dei um pouco mais de destaque para esse assunto um tanto quanto critico e de fácil solução).

Transparência

Outra dica interessando de Claudio Novais.
Transparências do Conky sobre os ícones do Desktop

Ainda estou tentando deixar o gnome3 com uma área de trabalho sem problemas de compatibilidades com o conky.

Weather

Imagem


Com o Weather é possível configurar um conky para mostrar informações sobre o clima.

Um lugar para se começar é com esse blog: http://foro-ubuntu-guia.963965.n3.nabble.com/Como-configurar-Conkyforecast-el-clima-para-Conky-td1932509.html
Está em espanhol, é dificil encontrar algo sobre o assunto em português, eu fundi a cuca pra fazer o meu funcionar . o.0
As explicações acima são um tanto incompletas, então tentarei completar as lacunas utilizando um arquivo de configuração que possuo.

Código: Selecionar todos
WEATHER ${hr 2}
${if_existing /proc/net/route eth0}
${voffset -8}${alignr 56}${font Weather:style=Bold:size=40}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=WF}${font}
${voffset -52}${font Weather:size=40}y${font}   ${voffset -38}${font Trebuchet MS:size=26}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=HT}${font}


${voffset 0}${font}Barometer Tendency: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=BD}
${voffset 0}Humidity: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=HM}
${voffset 0}${font}Wind Speed: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --hideunits --datatype=WS} km/h ${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --hideunits --datatype=WD}
${voffset 0}${font}Wind Gusts: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=WG}
${voffset 0}Daylight: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=SR} - ${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=SS}

${font Trebuchet MS:size=12}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=MP}
${voffset -30}${alignr 42}${font MoonPhases:size=24}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=MF}${font}

${else}${if_existing /proc/net/route eth1}
${voffset -8}${alignr 56}${font Weather:style=Bold:size=40}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=F}${font}
${voffset -52}${font Weather:size=40}y${font}   ${voffset -38}${font Trebuchet MS:size=26}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=HT}${font}


${voffset 0}${font}Barometer Tendency: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=BD}
${voffset 0}Humidity: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=HM}
${voffset 0}${font}Wind Speed: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --hideunits --datatype=WS} km/h ${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --hideunits --datatype=WD}
${voffset 0}${font}Wind Gusts: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=WG}
${voffset 0}Daylight: ${alignr}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=SR} - ${execi 600 /usr/bin/conkyForecast --location=CAXX0126 --datatype=SS}

${font Trebuchet MS:size=12}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=MP}
${voffset -30}${alignr 42}${font MoonPhases:size=28}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=MF}${font}
${endif}${else}
${font PizzaDude Bullets:size=14}4${font}   Weather Unavailable
${endif}


Essa parte do conky retirei de http://crunchbanglinux.org/forums/topic/59/my-conky-config/, elas podem parecer um tanto quanto confusas à primeira vista. Bem, e até mesmo na segunda ou terceira, mas mostrarei que não é tão complicado quanto parece ser... É bem mais! :yeah:

A primeira linha é umas das mais importantes: ${if_existing /proc/net/route eth0}
Ela verifica se há conexão com a internet, no caso acima ela procura por eth0 que é a ethernet configurada por padrão, essa linha deve ser verificada e configurada de acordo com a sua conexão com a internet, principalmente quando pegamos uma configuração em algum forum estranjeiro.
Muitas vezes ela vem configurada fora do padrão como eth1 (usando uma outra placa de rede para a internet) ou wlan0 (placa wireless) e caso não se tenha uma conexão com a internet por uma segunda placa de rede ou via wireless, o weather simplesmente não funcionará.

Outra parte importante para o correto funcionamento do nosso weather é a linha: ${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=HT}

Essa linha indica ao conky para obter informações do programa /usr/bin/conkyforecast e passa o parametro da pesquisa: location=BRXX1056 --datatype=HT
Sendo location=XXXXXXXX "o local onde você está" e --datatype=HT o tipo informação ele deve obter do servidor weather, no caso ali é a temperatura.
A localização devemos procurar pela cidade que queremos ter as informações do clima no sit: http://www.weather.com/
Eles serão os últimos 8 números da URL iniciando pelas siglas do pais seguidos de 2 X, o que no brasil fica algo como BRXX.

Podemos observar que o mesmo padrão está por todo o weather, um para cada informação que queremos obter, e em todos devemos trocar os "X" em location=XXXXXXXX pelo código da cidade que pegamos no sit do weater.

Aqui na parte do weather vemos mais uma vez a importância das fontes, são elas as responsáveis pelos icones de termperatura, situação do clima e fases da lua com as linhas:
Código: Selecionar todos
${voffset -8}${alignr 56}${font Weather:style=Bold:size=40}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=WF}${font}

Código: Selecionar todos
${voffset -52}${font Weather:size=40}y${font}   ${voffset -38}${font Trebuchet MS:size=26}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=HT}${font}

Código: Selecionar todos
${voffset -30}${alignr 42}${font MoonPhases:size=24}${execi 600 /usr/bin/conkyForecast --location=BRXX1056 --datatype=MF}${font}

Então para que possamos exibir o Weather corretamente precisamos das fontes Weather, Trebuchet MS e MoonPhases no computador.

O restante da configuração começa com um: ${else}${if_existing /proc/net/route eth1}
E após isso repete toda a configuração novamente, isso apenas faz com que se não for encontrada uma conexão com a internet pela placa de rede eth0 o conkyforecast procure por uma segunda placa de Ethernet e faça sua mágica por ela. :OK:


ConkyForecast

O conky ultiliza o conkyforecast para obter as informações do tempo do Weather, bem a instalação dele vimos em: http://foro-ubuntu-guia.963965.n3.nabble.com/Como-configurar-Conkyforecast-el-clima-para-Conky-td1932509.html
...então só nos resta falar sobre o arquivo de configuração.
Esse arquivo é o /usr/share/conkyforecast/conkyForecast.config
Usamos o comando abaixo para copiar ele para nossa pasta home
cp /usr/share/conkyforecast/conkyForecast.config ~/.conkyForecast.config

e vamos configurar o dito cujo com um:
gedit ~/.conkyForecast.config


Código: Selecionar todos
#=============================================#
# EXPERT SETTINGS, NOT REQUIRED TO BE ALTERED #
#=============================================#
BASE_XOAP_URL = http://xoap.weather.com/weather/local/<LOCATION>?cc=*&dayf=5&link=xoap&prod=xoap&par=<XOAP_PARTNER_ID>&key=<XOAP_LICENCE_KEY>&unit=m
#BASE_XOAP_URL = http://xml.weather.com/weather/local/<LOCATION>?cc=*&dayf=10&link=xoap&prod=xoap&par=<XOAP_PARTNER_ID>&key=<XOAP_LICENCE_KEY>&unit=m
MAXIMUM_DAYS_FORECAST = 4

#===============================================#
# USER SETTINGS, EDIT BASED ON DOCUMENTED SETUP #
#===============================================#
CACHE_FOLDERPATH = /tmp/
CONNECTION_TIMEOUT = 5
EXPIRY_MINUTES = 30
TIME_FORMAT = %H:%M
DATE_FORMAT = %Y-%m-%d
LOCALE = en
XOAP_PARTNER_ID =
XOAP_LICENCE_KEY =
DEFAULT_LOCATION = UKXX0103
AUTO_NIGHT = False
PROXY_HOST =
PROXY_PORT = 8080
PROXY_USERNAME =
PROXY_PASSWORD =


É isso que veremos na primeira vez que abrir ele.
O que precisamos alterar aki é simplesmente:

DEFAULT_LOCATION = UKXX0103 coloque o código da cidade que pegamos no site do weather (lembra? aquele BRXX :)

LOCALE = en coloca a sigla do pais (br para brasil ;)

CACHE_FOLDERPATH = /tmp/ Especifica um local para ser cache do forecaste, livre escolha para outro, caso você queira fazer algo mais com as informações que pegar do weather é bem últil.

XOAP_PARTNER_ID =
XOAP_LICENCE_KEY = Ao fazer um cadastro em: http://www.weather.com/services/xmloap.html
Receberemos uma id e uma key para colocar ai. Confesso que eu não fiz isso não, eu peguei uma key que encontrei num python do awn :D
ID = 1048871467
Key = 12daac2f3a67cb39

PROXY_HOST =
PROXY_PORT = 8080
PROXY_USERNAME =
PROXY_PASSWORD = Bom, o nome já é bastante sugestivo, para o caso de querermos adicionar um proxy configurado no servidor...

Salvando o arquivo estamos com o weather configurado :OK:


"Anéis de lua".


Outra flexibilidade que o conky oferece para trabalhar com outros programas são os "anéis de lua".
Anéis.lua, ou rings.lua são scripts escritos na linguagem lua que usa cairo open-gl para criar os mais váriados efeitos para turbinar o seu conky.
Geralmente quando pegamos algum conky na internet nos vem um arquivo de configuração conkyrc e um outro ring.lua. Bem, antes de mais nada para que o nosso anel de lua funcione perfeitamente recomendo esse artigo: http://www.vivaolinux.com.br/dica/Conky-O-que-fazer-quando-os-aneis-lua-nao-aparecem

Para carregar um anel de lua em um conky ele é chamado pelo comando:
Código: Selecionar todos
# -- Lua Load -- #
lua_load ~/scripts/conky_monitor.lua
lua_draw_hook_pre widgets


Por padrão, os autores colocam os seus conkys e rings.lua numa pasta scripts no diretório home (~/scripts/ring.lua), muitas vezes quando os anéis não são carregados é simplesmente por não estarem num diretório apropriado ou pelo conkyrc não estar devidamente configurado nessa parte. (você escolhe o caso ;)
Nada impede de colocarmos os arquivos em locais diferentes, por isso vale sempre conferir esta linha dos arquivos "conkyrc" e apontar o script lua corretamente para não quebrar a cuca. o.0

Caramba, isso ficou maior do que eu esperava. :D

É isso ai, se alguem está se perguntando, mas pra que esse tópico afinal.
Nada em especial, apenas quero compartilhar meus conhecimentos iniciantes com outros iniciantes que viram um desktop maneiro com aquele conky sinistro mas estão tendo dificuldades para fazer ele funcionar, muitas vezes por conta de uma coisinha de nada, e também acho interessante um tópico para tratar de duvidas de um programa tão flexível como o conky é.
Duvidas, dicas, URL de sits com conkys interesantes? :yeah:
Editado pela última vez por MarceloH em Qui, 18 de Agosto 2011, 3:47, em um total de 4 vezes.

MarceloH
 
Mensagens: 7
Registrado em: 30 Julho, 2011

Re: Iniciantes Conky

Mensagempor leandrolopes » Sex, 5 de Agosto 2011, 12:33

Esse tópico é muito bom, veio a calhar. Tava precisando pois uma vez tentei usar o conky mas sem sucesso. Vou experimentar esse tuto. Valeu.

leandrolopes
 
Mensagens: 342
Registrado em: 14 Junho, 2011
Localização: Paço do Lumiar - MA

Re: Iniciantes Conky

Mensagempor BrunoGom3z » Sex, 5 de Agosto 2011, 23:42

Não li com calma por que ainda estou a trabalhar (tenso). Mas quando chegar a minha residência lerei tranquilamente.

Obrigado por compartilhar amigo, tenho algumas dúvidas em relação ao conky. :obrigado:
Avatar do usuário
BrunoGom3z
 
Mensagens: 65
Registrado em: 01 Agosto, 2011
Localização: Fortaleza - CE

Re: Iniciantes Conky

Mensagempor Claudio Novais » Sáb, 6 de Agosto 2011, 14:49

BrunoGom3z » Sex Ago 05, 2011 11:42 pm escreveu:Não li com calma por que ainda estou a trabalhar (tenso)

Também estou na mesma situação! Só estive agora a fazer o artigo da série de visuais dos leitores do Ubuntued e vou já sair! No entanto, pelo que vi, parece-me que merece trabalhado para depois ser publicado no Ubuntued! Pareceu-me de utilidade enorme!!

Parabéns! Amanhã darei uma olhada mais profunda no seu excelente trabalho MarceloH :yeah:
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Dica Rings.lua

Mensagempor MarceloH » Dom, 14 de Agosto 2011, 7:59

Nesses ultimos dias eu tive um problema com um script ring.lua que eu peguei na internet, então revolvi colocar mais umas dicas de como não fundi a cuca com as configurações do conky. :lol:

O conkyrc é esse:
Código: Selecionar todos
# -- Conky settings -- #
background no
update_interval 1

cpu_avg_samples 2
net_avg_samples 2

override_utf8_locale yes

double_buffer yes
no_buffers yes

text_buffer_size 2048
imlib_cache_size 0

# -- Window specifications -- #

own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

border_inner_margin 0
border_outer_margin 0

minimum_size 1000 580
maximum_width 1000

alignment tl
gap_x 10
gap_y 10

# -- Graphics settings -- #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no

# -- Text settings -- #
use_xft yes
xftfont sans:size=12
xftalpha 0.8

uppercase no

default_color ffffff

# -- Lua Load -- #
lua_load ~/scripts/conky_widgets.lua
lua_draw_hook_pre widgets

TEXT
${goto 250}${font Journal:size=48}${time %A, %d %B %Y}${font}
${goto 250}${voffset 25}${fs_bar 1,720 /}
${goto 870}${voffset 80}CPU ${cpu}%
${alignr 20}${voffset 80}MEM ${memperc}%
${goto 870}${voffset 80}FS ${fs_used_perc}%
${alignr 20}${voffset 80}BAT ${battery_percent BAT1}%


O ring.lua é esse
Código: Selecionar todos
require 'cairo'

--[[ AIR CLOCK WIDGET ]]
--[[ Options (xc, yc, size):
   "xc" and "yc" are the x and y coordinates of the centre of the clock, in pixels, relative to the top left of the Conky window
   "size" is the total size of the widget, in pixels ]]

function air_clock(cr, xc, yc, size)
   local offset = 0
   
   shadow_width = size * 0.03
   shadow_xoffset = 0
   shadow_yoffset = size * 0.01
   
   if shadow_xoffset >= shadow_yoffset then
      offset = shadow_xoffset
   else offset = shadow_yoffset
   end
   
   local clock_r = (size - 2 * offset) / (2 * 1.25)
      
   show_seconds=true
   
   -- Grab time
   
   local hours=os.date("%I")
   local mins=os.date("%M")
   local secs=os.date("%S")
   
   secs_arc=(2*math.pi/60)*secs
   mins_arc=(2*math.pi/60)*mins
   hours_arc=(2*math.pi/12)*hours+mins_arc/12
   
   -- Drop shadow
   
   local ds_pat=cairo_pattern_create_radial(xc+shadow_xoffset,yc+shadow_yoffset,clock_r*1.25,xc+shadow_xoffset,yc+shadow_yoffset,clock_r*1.25+shadow_width)
   cairo_pattern_add_color_stop_rgba(ds_pat,0,0,0,0,0.2)
   cairo_pattern_add_color_stop_rgba(ds_pat,1,0,0,0,0)
   
   cairo_move_to(cr,0,0)
   cairo_line_to(cr,conky_window.width,0)
   cairo_line_to(cr,conky_window.width, conky_window.height)
   cairo_line_to(cr,0,conky_window.height)
   cairo_close_path(cr)
   cairo_new_sub_path(cr)
   cairo_arc(cr,xc,yc,clock_r*1.25,0,2*math.pi)
   cairo_set_source(cr,ds_pat)
   cairo_set_fill_rule(cr,CAIRO_FILL_RULE_EVEN_ODD)
   cairo_fill(cr)
   
   -- Glassy border
   
   cairo_arc(cr,xc,yc,clock_r*1.25,0,2*math.pi)
   cairo_set_source_rgba(cr,0.5,0.5,0.5,0.2)
   cairo_set_line_width(cr,1)
   cairo_stroke(cr)
   
   local border_pat=cairo_pattern_create_linear(xc,yc-clock_r*1.25,xc,yc+clock_r*1.25)
   
   cairo_pattern_add_color_stop_rgba(border_pat,0,1,1,1,0.7)
   cairo_pattern_add_color_stop_rgba(border_pat,0.3,1,1,1,0)
   cairo_pattern_add_color_stop_rgba(border_pat,0.5,1,1,1,0)
   cairo_pattern_add_color_stop_rgba(border_pat,0.7,1,1,1,0)
   cairo_pattern_add_color_stop_rgba(border_pat,1,1,1,1,0.7)
   cairo_set_source(cr,border_pat)
   cairo_arc(cr,xc,yc,clock_r*1.125,0,2*math.pi)
   cairo_close_path(cr)
   cairo_set_line_width(cr,clock_r*0.25)
   cairo_stroke(cr)
   
   -- Set clock face
   
   cairo_arc(cr,xc,yc,clock_r,0,2*math.pi)
   cairo_close_path(cr)
   
   local face_pat=cairo_pattern_create_radial(xc,yc-clock_r*0.75,0,xc,yc,clock_r)
   
   cairo_pattern_add_color_stop_rgba(face_pat,0,1,1,1,0.9)
   cairo_pattern_add_color_stop_rgba(face_pat,0.5,1,1,1,0.9)
   cairo_pattern_add_color_stop_rgba(face_pat,1,0.9,0.9,0.9,0.9)
   cairo_set_source(cr,face_pat)
   cairo_fill_preserve(cr)
   cairo_set_source_rgba(cr,0.5,0.5,0.5,0.2)
   cairo_set_line_width(cr, 1)
   cairo_stroke (cr)
   
   -- Draw hour hand
   
   xh=xc+0.7*clock_r*math.sin(hours_arc)
   yh=yc-0.7*clock_r*math.cos(hours_arc)
   cairo_move_to(cr,xc,yc)
   cairo_line_to(cr,xh,yh)
   
   cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
   cairo_set_line_width(cr,5)
   cairo_set_source_rgba(cr,0,0,0,0.5)
   cairo_stroke(cr)
   
   -- Draw minute hand
   
   xm=xc+0.9*clock_r*math.sin(mins_arc)
   ym=yc-0.9*clock_r*math.cos(mins_arc)
   cairo_move_to(cr,xc,yc)
   cairo_line_to(cr,xm,ym)
   
   cairo_set_line_width(cr,3)
   cairo_stroke(cr)
   
   -- Draw seconds hand
   
   if show_seconds then
      xs=xc+0.9*clock_r*math.sin(secs_arc)
      ys=yc-0.9*clock_r*math.cos(secs_arc)
      cairo_move_to(cr,xc,yc)
      cairo_line_to(cr,xs,ys)
   
      cairo_set_line_width(cr,1)
      cairo_stroke(cr)
   end
end

--[[ END AIR CLOCK WIDGET ]]

--[[ RING WIDGET ]]
--[[ Options (name, arg, max, bg_colour, bg_alpha, xc, yc, radius, thickness, start_angle, end_angle):
   "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.
   "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''.
   "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
   "bg_colour" is the colour of the base ring.
   "bg_alpha" is the alpha value of the base ring.
   "fg_colour" is the colour of the indicator part of the ring.
   "fg_alpha" is the alpha value of the indicator part of the ring.
   "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window.
   "radius" is the radius of the ring.
   "thickness" is the thickness of the ring, centred around the radius.
   "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
   "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger (e.g. more clockwise) than start_angle. ]]

function ring(cr, name, arg, max, bgc, bga, fgc, fga, xc, yc, r, t, sa, ea)
   local function rgb_to_r_g_b(colour,alpha)
      return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
   end
   
   local function draw_ring(pct)
      local angle_0=sa*(2*math.pi/360)-math.pi/2
      local angle_f=ea*(2*math.pi/360)-math.pi/2
      local pct_arc=pct*(angle_f-angle_0)

      -- Draw background ring

      cairo_arc(cr,xc,yc,r,angle_0,angle_f)
      cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
      cairo_set_line_width(cr,t)
      cairo_stroke(cr)
   
      -- Draw indicator ring

      cairo_arc(cr,xc,yc,r,angle_0,angle_0+pct_arc)
      cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
      cairo_stroke(cr)
   end
   
   local function setup_ring()
      local str = ''
      local value = 0
      
      str = string.format('${%s %s}', name, arg)
      str = conky_parse(str)
      
      value = tonumber(str)
      if value == nil then value = 0 end
      pct = value/max
      
      draw_ring(pct)
   end   
   
   local updates=conky_parse('${updates}')
   update_num=tonumber(updates)
   
   if update_num>5 then setup_ring() end
end

--[[ END RING WIDGET ]]

function conky_widgets()
   if conky_window == nil then return end
   local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
   
   cr = cairo_create(cs)
   air_clock(cr, 120, 120, 200) -- options: xc, yc, size
   cairo_destroy(cr)
   
   cr = cairo_create(cs)
   ring(cr, 'cpu', 'CPU0', 100, 0xFFFFFF, 0.2, 0xFFFFFF, 0.8, 920, 200, 50, 10, 0, 180) -- options: name, arg, max, bg_colour, bg_alpha, fg_colour, fg_alpha, xc, yc, radius, thickness, start_angle, end_angle
   cairo_destroy(cr)
   
   cr = cairo_create(cs)
   ring(cr, 'memperc', '', 100, 0xFFFFFF, 0.2, 0xFFFFFF, 0.8, 920, 300, 50, 10, 180, 360) -- options: name, arg, max, bg_colour, bg_alpha, fg_colour, fg_alpha, xc, yc, radius, thickness, start_angle, end_angle
   cairo_destroy(cr)   
   
   cr = cairo_create(cs)
   ring(cr, 'fs_used_perc', '/', 100, 0xFFFFFF, 0.2, 0xFFFFFF, 0.8, 920, 400, 50, 10, 0, 180) -- options: name, arg, max, bg_colour, bg_alpha, fg_colour, fg_alpha, xc, yc, radius, thickness, start_angle, end_angle
   cairo_destroy(cr)
   
   cr = cairo_create(cs)
   ring(cr, 'battery_percent', 'BAT1', 100, 0xFFFFFF, 0.2, 0xFFFFFF, 0.8, 920, 500, 50, 10, 180, 360) -- options: name, arg, max, bg_colour, bg_alpha, fg_colour, fg_alpha, xc, yc, radius, thickness, start_angle, end_angle
   cairo_destroy(cr)
end


Extraidos de: :rox:

Agora vamos para a novela.

Eu estava procurando uma distro nova (eu sempre gosto de usar várias distros) então encontrei com Arch Linux (que tem uma idéia bastante interessante de linux), então lá vou eu me aventurar pelas entranhas do modo texto.
Instalei errado a primeira vez, normal, mais errado na segunda, faz parte, mas na terceira eu acertei. :lol:
Lá vamos nós configurar o desktop, gnome3 (hehe vamo vê como fico, que diga se de passagem parece um primo não muito distante do unity), um conky pra deixar tudo muito cool.

A primeira coisa que eu fiz ao ler o rc do conky foi retirar a "bateria" dele já que eu estou em um desktop... sem bateria.
Isso geraria um erro e o conky não iria ser carregado.

${alignr 20}${voffset 80}BAT ${battery_percent BAT1}

Coloquei um:${alignr 20}${voffset 80}Home ${fs_used_perc /home}

Pois bem, até ai tudo legal, chamo o conky por script e nada de ring.lua
E lá vamos nós, procurar no wikiarch como fazer o bixo funcionar: manda um pacman -S conky-lua que tudo fica sussa.
E nada do bixo pega, instala, reinstala, e nada de ring.lua.

Quase desistindo do baguio resolvi ir pro ubuntu pra botar gnome3 nele também (experiencias malucas), resolvi por nele o dito conky: -Ah, é impossível não funcionar no ubuntu!

Mando um conky -c ~/scripts/conkyrc_cool e então temos:

Conky: can't open /sys/class/power_supply/BAT1/uevent: No such file or directory
Conky: can't open /proc/acpi/battery/BAT1/state: No such file or directory


Opa é claro, tirar a bateria do conkyrc, se não dá erro, e tambem deve ter isso no script ring.lua que... eu... éééé preciso... mudar tamb... :facepalm2:

Código: Selecionar todos
 cr = cairo_create(cs)
   ring(cr, 'battery_percent', 'BAT1', 100, 0xFFFFFF, 0.2, 0xFFFFFF, 0.8, 920, 500, 50, 10, 180, 360) -- options: name, arg, max, bg_colour, bg_alpha, fg_colour, fg_alpha, xc, yc, radius, thickness, start_angle, end_angle
   cairo_destroy(cr)


E ai está o problema, uma noite de pesquisas no google e nada de encontrar a solução que tá na tua frente... :doh:

É está ai uma dica do vivendo e aprendendo: Pequenas adaptações nos scripts valem mais do que 6 horas no google :yeah:


Gnome 3


Tentou carregar um conky no gnome 3, ou tentará, e nada?
A solução é bem simples.

Código: Selecionar todos
#Especificações da janela#
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below


Basta substituir o: own_window_type override >>>> por: own_window_type desktop

Forças ocultas, segundo diz um site gringues (que eu não li e não entendi o pouco que li), fazem com que o gnome3 não tenha desktop até que ela seja habilitada nas configurações, então com um pouco que pó de pirlimpimpim a receita de cima faz ele aparecer como deveria.
Coisas do além...

MarceloH
 
Mensagens: 7
Registrado em: 30 Julho, 2011

Re: Iniciantes Conky

Mensagempor Claudio Novais » Seg, 15 de Agosto 2011, 13:17

Olá Marcelo, existe ainda outras dicas que poderá incluir no início deste tópico que eu acho fundamentais! Segue os links:
Seria bom você escrever algo sobre elas e não pôr apenas os links. Ou seja, seria bom você continuar esse excelente trabalho! ;)
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Sensores de Temperatura

Mensagempor MarceloH » Qui, 18 de Agosto 2011, 5:30

Há um bom tempo eu estava procurando uma forma de mostrar a temperatura do processador com o conky e apenas encontrava soluções que não conseguia fazer funcionar.
Com "${acpitemp}", nada de acpi funcionar...
Com "${hwmon 1 temp 2}", o hwmond mantinha uma temperatura estática, pelo visto ele atualiza apenas com o reboot.
Então após algumas "googladas" encontrei a solução, o lm-sensors.

Primeiro: Instalando lm-sensors.

Agora recomendo reiniciar o computador após o: ~$ sudo sensors-detect

Depois de reiniciar basta mandar no termial um: ~$ sensors

marcelohmd@admubuntu-GeForce6100PM-M2:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +30.0°C (crit = +110.0°C)

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +38.0°C
Core1 Temp: +35.0°C

it8716-isa-0a10
Adapter: ISA adapter
in0: +1.10 V (min = +0.00 V, max = +4.08 V)
in1: +2.48 V (min = +0.00 V, max = +4.08 V)
in2: +1.86 V (min = +0.00 V, max = +4.08 V)
+5V: +2.94 V (min = +0.00 V, max = +4.08 V)
in4: +1.22 V (min = +0.00 V, max = +4.08 V)
in5: +1.17 V (min = +0.00 V, max = +4.08 V)
in6: +2.88 V (min = +0.00 V, max = +4.08 V)
5VSB: +2.83 V (min = +0.00 V, max = +4.08 V)
Vbat: +3.09 V
fan1: 1153 RPM (min = 0 RPM)
fan2: 7848 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
temp1: +9.0°C (low = +127.0°C, high = -53.0°C) ALARM sensor = thermal diode
temp2: +45.0°C (low = -1.0°C, high = +127.0°C) sensor = thermistor
temp3: -128.0°C (low = -1.0°C, high = +127.0°C) sensor = disabled


E o resultado é uma chuva de informaçõs preciosas sobre a maquina. (Eu também axo que tem alguma coisa errada com os meus sensores) o.0

Agora vamos filtrar as informações.

Código: Selecionar todos
CPU0 ${execi 1 sensors | grep Core0 | head -n 1 | cut -c15-20}


Tá ai oque nos interressa para esse post, temperaturas.

O "execi 1" faz com que o "sensors" seja rodado a cada 1 segundo. Voce pode alterar para o tempo que quizer, sempre em segundos e 0.X para decimos centésimos ou ésimos que quiseres e com pipe (|) a bola é passada para o grep.

O "grep Core0" filtra a linha com a temperatura do Core0 do processador pipe (|) bola pro cut.

O "cut -c15-20" corta a temperatura passando para o conky apenas os caracteres 15 ao 20 da linha, que nos dá o resultado: 38.0°C

Agora vamos ao head que tem historinha: o.0

acpitz-virtual-0
Adapter: Virtual device
temp1: +30.0°C (crit = +110.0°C)

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +38.0°C
Core0 Temp: +34.0°C
Core1 Temp: +35.0°C
Core1 Temp: +34.0°C


Esse é o resultado dos Cores dos meus sensores (eu disse que tem alguma coisa errada com eles)

E essa é a disposição das temperaturas no meu conky, toda desconfigurada:

Imagem


E agora, o que faço eu? Mais google e descubro a utilidade para o head e o tail: o grep passa a bola pro head que passa para o cut apenas a primeira linha Core0 e o resultado é:

Imagem


Temperaturas dos processadores ok, missão comprida! :OK:

Código: Selecionar todos
SYSTEM ${hr 2}
${font OpenLogos:size=16}t${font}   Kernel:  ${alignr}${kernel}
${font StyleBats:size=16}A${font}   ${execi 99999 cat /proc/cpuinfo | grep "model name" -m1 | cut -d":" -f2 | cut -d" " -f2- | sed 's#Processor ##'}
${font StyleBats:size=16}A${font}   ${freq}MHz   CPU0 ${execi 1 sensors | grep Core0 |head -n 1 | cut -c15-20}   CPU1 ${execi 1 sensors | grep Core1 | head -n 1 | cut -c15-20}
${font StyleBats:size=16}A${font}   CPU0: ${cpu cpu0}% ${alignr}${cpubar cpu0 8,60}
${font StyleBats:size=16}A${font}   CPU1: ${cpu cpu1}% ${alignr}${cpubar cpu1 8,60}
${font StyleBats:size=16}g${font}   RAM: ${memperc}% ${alignr}${membar 8,60}
${font StyleBats:size=16}j${font}   SWAP: ${swapperc}% ${alignr}${swapbar 8,60}
${font StyleBats:size=16}q${font}   Uptime: ${alignr}${uptime}


Agora fazer algo didático com a mesma base, para pegar a temperatura da placa mãe:

Analisando no terminal ao rodar o sensors podemos "claramente afirmar" (tenho minhas duvidas) que a temperatura da placa mãe está sendo monitorada pela linha:
temp2: +45.0°C (low = -1.0°C, high = +127.0°C) sensor = thermistor

Logo precisamos "grep temp2"

Contando ali os caracteres, contando também os espaços vazios selecionando com o mouse, faremos o cut -c15-20
Agora temos um novo monitor para o conky.

Código: Selecionar todos
Placa mãe ${execi 1 sensors | grep temp2 | cut -c15-20}



Está ai uma poderosa combinação de monitoramento para o conky, fácil de entender e configurar que nos permite obter as mais variadas informações. :OK:

MarceloH
 
Mensagens: 7
Registrado em: 30 Julho, 2011


Voltar para Programas

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes

cron