Conky




Código:
# Generated by Conky GUI
# Check http://conkygui.sourceforge.net/
# For the latest version of Conky GUI

#31-Jul-09 12:28:19 AM
#
#

# Conky
background yes
no_buffers yes
out_to_console no
top_cpu_separate no
max_port_monitor_connections 256
cpu_avg_samples 2
net_avg_samples 3
total_run_times 0
update_interval 3
music_player_interval 3

# Text
uppercase no
override_utf8_locale yes
short_units no
pad_percents 0
text_buffer_size 256
max_user_text 16384
font Bitstream Charter:style=Regular
use_xft yes
xftalpha 0.5
xftfont HandelGotD:size=9

# Window
own_window yes
own_window_colour ffffff
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_type normal

# Graphics
double_buffer yes
draw_borders no
draw_graph_borders yes
draw_shades no
draw_outline yes
stippled_borders 8
max_specials 512

# Layout
alignment bottom_right
gap_x 30
gap_y 160
maximum_width 250
minimum_size 200 5
use_spacer none
border_margin 4
border_width 1

# Colors
default_color ffffff
default_outline_color 4e7578
default_shade_color 51608f
color0 ff0000
color1 0000ff
color2 ffff00
color3 00ff00
color4 ffafaf
color5 ffc800
color6 ff00ff
color7 00ffff
color8 808080
color9 404040

# Net

# stuff after 'TEXT' will be formatted on screen

TEXT




${font openlogos:size=80}t${font}
$sysname $kernel on $machine
${font StyleBats:size=18}P${font} Uptime $alignr $uptime
${font StyleBats:size=18}X${font} Load $alignr $loadavg
${font StyleBats:size=18}V${font} Public IP $alignr ${color}${execi 14400 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g' | tail}${color}
${font StyleBats:size=18}T${font} $processes processes ($running_processes running)

${font PizzaDude Bullets:size=16}N${font} ${color white}Highest CPU:
${color de0b0b}${top name 1}${top cpu 1}
${color white}${top name 2}${top cpu 2}
${top name 3}${top cpu 3}
${top name 4}${top cpu 4}
${top name 5}${top cpu 5}
${font PizzaDude Bullets:size=16}O${font} ${color white}Highest MEM:
${color de0b0b}${top_mem name 1}${top_mem mem 1}
${color white}${top_mem name 2}${top_mem mem 2}
${top_mem name 3}${top_mem mem 3}
${top_mem name 4}${top_mem mem 4}
${top_mem name 5}${top_mem mem 5}

${font StyleBats:size=18}A${font} CPU Core 1 $alignr ${cpu cpu0}%
${cpubar cpu0}
${font StyleBats:size=18}A${font} CPU Core 2 $alignr ${cpu cpu1}%
${cpubar cpu1}

${font PizzaDude Bullets:size=16}J${font} MEM $alignr $mem / $memmax $alignr   $memperc%
$membar
${font StyleBats:size=18}B${font} swap $alignr $swap / $swapmax $alignr     $swapperc%
${swapbar}

${font StyleBats:size=18}F${font} / $alignr${fs_used /} / ${fs_size /}$alignr    ${fs_free_perc /}%
${fs_bar /}
${font StyleBats:size=18}G${font}/home $alignr  ${fs_used /home} / ${fs_size /home} $alignr   ${fs_free_perc /home}%
${fs_bar /home/}
${font StyleBats:size=18}G${font}~/Isel $alignr ${fs_used  /home/kerml/Isel} / ${fs_size  /home/kerml/Isel}   $alignr ${fs_free_perc  //home/kerml/Isel}%
${fs_bar /home/kerml/Isel}
${font StyleBats:size=18}G${font}~/backup $alignr ${fs_used  /home/kerml/backup} / ${fs_size  /home/kerml/backup}   $alignr ${fs_free_perc  /home/kerml/backup}%
${fs_bar /home/kerml/backup}
${font StyleBats:size=18}G${font}~/Music $alignr ${fs_used  /home/kerml/Music} / ${fs_size  /home/kerml/Music}   $alignr ${fs_free_perc  /home/kerml/Music}%
${fs_bar /home/kerml/Music}
${font StyleBats:size=18}G${font}~/downloads  $alignr ${fs_used  /home/kerml/downloads} / ${fs_size  /home/kerml/downloads} $alignr   ${fs_free_perc  /home/kerml/downloads}%
${fs_bar /home/kerml/downloads}

Código:
# Generated by Conky GUI
# Check http://conkygui.sourceforge.net/
# For the latest version of Conky GUI

#31-Jul-09 12:27:27 AM
#
#

# Conky
background yes
no_buffers yes
out_to_console no
top_cpu_separate no
max_port_monitor_connections 256
cpu_avg_samples 2
net_avg_samples 3
total_run_times 0
update_interval 3
music_player_interval 3

# Text
uppercase no
override_utf8_locale yes
short_units no
pad_percents 0
text_buffer_size 128
max_user_text 16384
font Bitstream Charter:style=Regular
use_xft yes
xftalpha 0.5
xftfont HandelGotD:size=9

# Window
own_window yes
own_window_colour ffffff
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_type normal

# Graphics
double_buffer yes
draw_borders no
draw_graph_borders yes
draw_shades no
draw_outline yes
stippled_borders 8
max_specials 512

# Layout
alignment bottom_right
gap_x 330
gap_y 150
maximum_width 270
minimum_size 200 5
use_spacer none
border_margin 4
border_width 1

# Colors
default_color ffffff
default_outline_color 54668f
default_shade_color 4e7578
color0 ff0000
color1 0000ff
color2 ffff00
color3 00ff00
color4 ffafaf
color5 ffc800
color6 ff00ff
color7 00ffff
color8 808080
color9 404040

# Net

# stuff after 'TEXT' will be formatted on screen

TEXT


powered by
${font openlogos:size=150}q${font}
$alignc${exec cat /etc/slackware-version}
${font openlogos:size=90}Y${font}KDE 3.5.10








${font weather:size=28}z${font}CPU Core 1 Core 2  $alignr ${hwmon 1 temp 1}C / ${hwmon 0 temp 1}C
${font weather:size=28}z${font}GPU $alignr ${exec /usr/bin/nvidia-settings -q gpucoretemp |grep Attribute |cut -c 38-43}C
${font weather:size=28}x${font} Hard Drives $alignr /dev/sda ${hddtemp /dev/sda}
$alignr /dev/sdb ${hddtemp /dev/sdb}
$alignr /dev/sdc ${hddtemp /dev/sdc}









${font StyleBats:size=18}R${font}
LAN:$alignr ${addr eth0}
${font PizzaDude Bullets:size=16}r${font} Down:${color} $alignr ${downspeed eth0} k/s${color} ${offset 80}
${font PizzaDude Bullets:size=16}v${font} Up:${color} $alignr ${upspeed eth0} k/s${color} ${offset 80}

${downspeedgraph eth0 40,130} ${alignr}${upspeedgraph eth0 40,130}
Down: ${totaldown eth0} ${alignr}Up: ${totalup eth0}
 
boas, fica aqui o que tenho de momento:

config:
Código:
# Use Xft?
use_xft yes
xftfont Aerial:style=Bold:pixelsize=10
xftalpha 0.8
text_buffer_size 2048

# Update interval in seconds
update_interval 1

# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_transparent yes
own_window_type override
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 445
#maximum_width 200

# Draw shades?
draw_shades no

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Stippled borders?
stippled_borders 0

# border margins
border_margin 5

# border width
border_width 1

# Default colors and also border colors
default_color white
#default_shade_color white
#default_outline_color black
own_window_colour white

# Text alignment, other possible values are commented
#alignment top_left
#alignment top_right
alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 20
gap_y 23

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 1

# number of net samples to average
# set to 1 to disable averaging
net_avg_samples 1

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes
draw_graph_borders no
# Add spaces to keep things from moving about?  This only affects certain objects.
use_spacer none

TEXT
Uptime: ${color #ddaa00}$uptime${color}  Intel Atom n270  (${freq_g cpu0}GHz)	       ${alignr}${cpu cpu1}% CPU1: ${cpubar 5,80 cpu1} 
Home:${fs_used /} used / ${fs_free /} free ${alignr}${cpu cpu2}% CPU2: ${cpubar 5,80 cpu2} 
${fs_bar /}
Temp: ${color #ddaa00}${hddtemp /dev/sda}${color}    ${alignr}Total: ${color #ddaa00}${fs_size /}${color}
Media:${fs_used /media/disk} used / ${fs_free /media/disk} free
${fs_bar /media/disk}
Temp: ${color #ddaa00}${hddtemp /dev/sda}${color}    ${alignr}Total: ${color #ddaa00}${fs_size /media/disk}${color}

${if_existing /proc/net/route ppp0}${color #ddaa00}${downspeed ppp0}${color} k/s ${color #ddaa00}${alignc}${addr ppp0}${color}${alignr}${color #ddaa00}${upspeed ppp0}${color} k/s
${downspeedgraph ppp0 25,215 B7D17C 93BF30} ${alignr}${upspeedgraph ppp0 25,215 B7D17C 93BF30}
${color #ddaa00}${totaldown ppp0} ${alignr}${totalup ppp0}${color}
${else}${if_existing /proc/net/route eth0}${color #ddaa00}${downspeed eth0}${color} k/s ${color #ddaa00}${alignc}${addr eth0}${color}${alignr}${color #ddaa00}${upspeed eth0}${color} k/s
${downspeedgraph eth0 25,215 B7D17C 93BF30} ${alignr}${upspeedgraph eth0 25,215 B7D17C 93BF30}
${color #ddaa00}${totaldown eth0} ${alignr}${totalup eth0}${color}
${endif}${else}${if_existing /proc/net/route wlan0}${color #ddaa00}${downspeed wlan0}${color} k/s ${color #ddaa00}${alignc}${addr wlan0}${color}${alignr}${color #ddaa00}${upspeed wlan0}${color} k/s
${downspeedgraph wlan0 25,215 B7D17C 93BF30} ${alignr}${upspeedgraph wlan0 25,215 B7D17C 93BF30}
${color #ddaa00}${totaldown wlan0} ${alignr}${totalup wlan0}${color}
${endif}${else}
${alignc}${font PizzaDude Bullets:size=14}4${font}   Network Unavailable
${endif}
cumps
 
Última edição:
:D


Fiquei curioso com uma coisa. Não consigo colocar o script do exaile a funcionar com a 0.3.0.1 ...

Qual é a config que tens no conky para isso estar a "funcar" sem problemas???:)


Conky:
Código:
use_xft yes
xftfont Liberation Sans:size=9
override_utf8_locale yes

text_buffer_size 1024
update_interval 1
total_run_times 0
double_buffer yes
no_buffers yes
net_avg_samples 1
cpu_avg_samples 1

own_window_class Conky
own_window yes
own_window_colour 3C3C3C
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

default_color D8D8D8
draw_borders no
border_width 1
border_margin 10
draw_graph_borders yes
draw_outline no
draw_shades no

color0 E6E6E6
color1 709937
color2 E6E6E6

alignment top_right
gap_x 25
gap_y 50
minimum_size 182 0
maximum_width 182

imlib_cache_size 0

TEXT
${font Liberation Sans:style=Bold:size=8}SISTEMA $stippled_hr${font}
${color0}${font Poky:size=15}S${font}${color}${goto 38}${voffset -8}Kernel:  ${alignr}${color2}${kernel}${color}
${goto 38}Uptime: ${alignr}${color2}${uptime}${color}
${offset 1}${color0}${font Poky:size=16}P${font}${offset -19}${voffset 9}${cpubar cpu0 4,18}${color}${voffset -15}${voffset -1}${goto 38}CPU1: ${font Liberation Sans:style=Bold:size=8}${color1}${cpu cpu1}%${color}${font} ${alignr}${color2}${cpugraph cpu1 8,60 51751E 709937}${color}
${voffset -1}${goto 38}CPU2: ${font Liberation Sans:style=Bold:size=8}${color1}${cpu cpu2}%${color}${font} ${alignr}${color2}${cpugraph cpu2 8,60 51751E 709937}${color}
${color0}${font Poky:size=16}M${font}${color}${goto 38}${voffset -7}RAM: ${font Liberation Sans:style=Bold:size=8}${color1}$memperc%${color}${font}
${offset 1}${voffset 2}${color2}${membar 4,18}${color}${goto 38}${voffset -4}U: ${color2}${mem}${color} F: ${color2}${memeasyfree}${color}
${voffset 4}${font Liberation Sans:style=Bold:size=8}DATA $stippled_hr${font}
${voffset -10}${alignc 45}${color2}${font Arial Black:size=30}${time %H:%M}${font}${color}
${alignc}${time %d %m %Y}
${voffset 4}${font Liberation Sans:style=Bold:size=8}EXAILE $stippled_hr${font}
${execpi 1 ~/.conky/conkyExaile.py -t ~/.conky/conkyPlayer.template}
${voffset 4}${font Liberation Sans:style=Bold:size=8}HD $stippled_hr${font}
${execpi 30 ~/.conky/hd_default.py}
${voffset 4}${font Liberation Sans:style=Bold:size=8}REDE $stippled_hr${font}
${if_existing /proc/net/route wlan0}
${voffset -13}${color0}${font VariShapes Solid:size=14}q${font}${color}${goto 38}${voffset -6}Up: ${font Liberation Sans:style=Bold:size=8}${color1}${upspeed wlan0}${color}${font} ${alignr}${color2}${upspeedgraph wlan0 8,60 51751E 709937}${color}
${goto 38}Total: ${color2}${totalup wlan0}${color}
${voffset -2}${color0}${font VariShapes Solid:size=14}Q${font}${color}${goto 38}${voffset -6}Down: ${font Liberation Sans:style=Bold:size=8}${color1}${downspeed wlan0}${color}${font} ${alignr}${color2}${downspeedgraph wlan0 8,60 51751E 709937}${color}
${goto 38}Total: ${color2}${totaldown wlan0}${color}
${voffset -2}${color0}${font Poky:size=14}Y${font}${color}${goto 38} ${voffset -2}Sinal: ${font Liberation Sans:style=Bold:size=8}${color1}${wireless_link_qual wlan0}%${color}${font} ${alignr}${color2}${wireless_link_bar 8,60 wlan0}${color}
${voffset 4}${color0}${font Poky:size=13}w${font}${color}${goto 38}${voffset -8}IP local: ${alignr}${color2}${addr wlan0}${color}
${goto 38}IP externo: ${alignr}${color2}${execi 10800 ~/.conky/ip.sh}${color}
${else}${if_existing /proc/net/route eth1}
${voffset -13}${color0}${font VariShapes Solid:size=14}q${font}${color}${goto 38}${voffset -6}Up: ${font Liberation Sans:style=Bold:size=8}${color1}${upspeed eth1}${color}${font} ${alignr}${color2}${upspeedgraph eth1 8,60 51751E 709937}${color}
${goto 38}Total: ${color2}${totalup eth1}${color}
${voffset -2}${color0}${font VariShapes Solid:size=14}Q${font}${color}${goto 38}${voffset -6}Down: ${font Liberation Sans:style=Bold:size=8}${color1}${downspeed eth1}${color}${font} ${alignr}${color2}${downspeedgraph eth1 8,60 51751E 709937}${color}
${goto 38}Total: ${color2}${totaldown eth1}${color}
${voffset -2}${color0}${font Poky:size=13}w${font}${color}${goto 38}${voffset -4}IP local: ${alignr}${color2}${addr eth1}${color}
${goto 38}IP externo: ${alignr}${color2}${execi 10800 ~/.conky/ip.sh}${color}
${endif}${else}${if_existing /proc/net/route ppp0}
${voffset -13}${color0}${font VariShapes Solid:size=14}q${font}${color}${goto 38}${voffset -6}Up: ${font Liberation Sans:style=Bold:size=8}${color1}${upspeed ppp0}${color}${font} ${alignr}${color2}${upspeedgraph ppp0 8,60 51751E 709937}${color}
${goto 38}Total: ${color2}${totalup ppp0}${color}
${voffset -2}${color0}${font VariShapes Solid:size=14}Q${font}${color}${goto 38}${voffset -6}Down: ${font Liberation Sans:style=Bold:size=8}${color1}${downspeed ppp0}${color}${font} ${alignr}${color2}${downspeedgraph ppp0 8,60 51751E 709937}${color}
${goto 38}Total: ${color2}${totaldown ppp0}${color}
${voffset -2}${color0}${font Poky:size=13}w${font}${color}${goto 38}${voffset -4}Ip local: ${alignr}${color2}${addr ppp0}${color}
${endif}${else}${voffset 4}${color0}${font PizzaDude Bullets:size=12}4${font}${color}${goto 38}Rede indisponível${endif}${endif}
${voffset 4}${font Liberation Sans:style=Bold:size=8}PIDGIN $stippled_hr${font}${if_running pidgin}
${voffset 4}${execpi 10 ~/.conky/conkyPidgin.py -o -s -l 5}${else}
${voffset 4}${color0}${font PizzaDude Bullets:size=12}4${font}${color}${goto 38}O Pidgin não está a correr${endif}

${voffset -8}${font Liberation Sans:style=Bold:size=8}TEMPO $stippled_hr${font}
Humidade: ${execi 3600 conkyForecast --location=POXX0074 --datatype=HM}
Vento: ${execi 3600 conkyForecast --location=POXX0074 --datatype=WS}
Nascer do Sol: ${execi 3600 conkyForecast --location=POXX0074 --datatype=SR}
Pôr do Sol: ${execi 3600 conkyForecast --location=POXX0074 --datatype=SS}
${font ConkyWeather:size=36}${execi 3600 conkyForecast --location=POXX0074 --datatype=WF}${font}
Temperatura: ${execi 3600 conkyForecast --location=POXX0074 --datatype=HT}
EDIT: Ele tem alguns problemas com o tempo a ficar certíssimo com o programa, mas se arranjares alguma maneira de o fazer certo avisa :D.

E o script:

Código:
#!/usr/bin/python
# -*- coding: utf-8 -*-
###############################################################################
# conkyExaile.py is a simple python script to gather 
# details of from exaile for use in conky.
#
#  Author: Kaivalagi
# Created: 21/09/2008
# Modifications:
#    21/09/2008    Added version option
#    21/09/2008    Updated to handle nothing, will return "Unknown" or zero value output when nothing is available
#    21/09/2008    Added --nounknownoutput option to turn off "Unknown" and "0:00" as default output for the unknown
#    22/09/2008    Minor bug fixes for unknown output
#    23/09/2008    Updated to do all dbus data retrievial upfront and reuse data if still available in musicData class
#    25/09/2008    Updated to handle when no music is playing, no unnecessary dbus calls will be made
#    25/09/2008    Updated rating output generation to use ljust string function
#    02/10/2008    Updated script to now use "[" and "]" as template brackets rather than "{" and "}" so that the execp/execpi conky command can be used, this enables the use of $font, $color options in the template which conky will then make adjustments for in the output! 
#    04/10/2008    Updated help for template option
#    10/11/2008    Added --errorlog and --infolog options to log data to a file, removed --enableerrors option as unnecessary
#    17/11/2008    Now loading the template file in unicode mode to allow for the extended character set
#    17/11/2008    Added datatypes: ST (status), GE (genre), YR (year), TN (track number), FN (file name)
#    17/11/2008    Added --statustext option to allow overridding of the standard status text
#    20/11/2008    Unrated rating now outputs nothing
#    21/11/2008    Fixed statustext to work inside template now
#    06/01/2009    Removed .encode("utf-8") from internal return to fix unicode output?...it works...
#    18/05/2009    Updated to expand ~ based template paths
from datetime import datetime
from optparse import OptionParser
import codecs
import sys
import traceback
import os
try:
    import dbus
    DBUS_AVAIL = True
except ImportError:
    # Dummy D-Bus library
    class _Connection:
        get_object = lambda *a: object()
    class _Interface:
        __init__ = lambda *a: None
        ListNames = lambda *a: []
    class Dummy: pass
    dbus = Dummy()
    dbus.Interface = _Interface
    dbus.service = Dummy()
    dbus.service.method = lambda *a: lambda f: f
    dbus.service.Object = object
    dbus.SessionBus = _Connection
    DBUS_AVAIL = False


class CommandLineParser:

    parser = None

    def __init__(self):

        self.parser = OptionParser()
        self.parser.add_option("-t", "--template", dest="template", type="string", metavar="FILE", help=u"define a template file to generate output in one call. A displayable item in the file is in the form [--datatype=TI]. The following are possible options within each item: --datatype,--ratingchar. Note that the short forms of the options are not currently supported! None of these options are applicable at command line when using templates.")
        self.parser.add_option("-d", "--datatype", dest="datatype", default="TI", type="string", metavar="DATATYPE", help=u"[default: %default] The data type options are: ST (status), TI (title), AL (album), AR (artist), GE (genre), YR (year), TN (track number), FN (file name), LE (length), PP (current position in percent), PT (current position in time), VO (volume), RT (rating). Not applicable at command line when using templates.")
        self.parser.add_option("-r", "--ratingchar", dest="ratingchar", default="*", type="string", metavar="CHAR", help=u"[default: %default] The output character for the ratings scale. Command line option overridden if used in templates.")
        self.parser.add_option("-s", "--statustext", dest="statustext", default="Playing,Paused,Stopped", type="string", metavar="TEXT", help=u"[default: %default] The text must be comma delimited in the form 'A,B,C'. Command line option overridden if used in templates.")
        self.parser.add_option("-n", "--nounknownoutput", dest="nounknownoutput", default=False, action="store_true", help=u"Turn off unknown output such as \"Unknown\" for title and \"0:00\" for length. Command line option overridden if used in templates.")
        self.parser.add_option("-v", "--verbose", dest="verbose", default=False, action="store_true", help=u"Request verbose output, not a good idea when running through conky!")
        self.parser.add_option("-V", "--version", dest="version", default=False, action="store_true", help=u"Displays the version of the script.")
        self.parser.add_option("--errorlogfile", dest="errorlogfile", type="string", metavar="FILE", help=u"If a filepath is set, the script appends errors to the filepath.")
        self.parser.add_option("--infologfile", dest="infologfile", type="string", metavar="FILE", help=u"If a filepath is set, the script appends info to the filepath.")                

    def parse_args(self):
        (options, args) = self.parser.parse_args()
        return (options, args)

    def print_help(self):
        return self.parser.print_help()

class MusicData:
    def __init__(self,status,coverart,title,album,length,artist,tracknumber,genre,year,filename,current_position_percent,current_position,rating,volume):
        self.status = status
        self.coverart = coverart
        self.title = title
        self.album = album
        self.length = length
        self.artist = artist
        self.tracknumber = tracknumber
        self.genre = genre
        self.year = year
        self.filename = filename        
        self.current_position_percent = current_position_percent
        self.current_position = current_position
        self.rating = rating
        self.volume = volume
        
class ExaileInfo:
    
    error = u""
    musicData = None
    
    def __init__(self, options):
        self.options = options
        
    def testDBus(self, bus, interface):
        obj = bus.get_object('org.freedesktop.DBus', '/org/freedesktop/DBus')
        dbus_iface = dbus.Interface(obj, 'org.freedesktop.DBus')
        avail = dbus_iface.ListNames()
        return interface in avail
        
    def getOutputData(self, datatype, ratingchar, statustext, nounknownoutput):
        output = u""
        
        if nounknownoutput == True:
            unknown_time = ""
            unknown_number = ""
            unknown_string = ""            
        else:
            unknown_time = "0:00"
            unknown_number = "0"
            unknown_string = "Unknown"
        
        try:
                
            bus = dbus.SessionBus()
            if self.musicData == None:
                
                if self.testDBus(bus, 'org.exaile.DBusInterface'):
                    
                    try:
                    
                        self.logInfo("Setting up dbus interface")
                        
                        remote_object = bus.get_object("org.exaile.DBusInterface","/DBusInterfaceObject")
                        iface = dbus.Interface(remote_object, "org.exaile.DBusInterface")
                        
                        self.logInfo("Calling dbus interface for music data")
                            
                        # grab the data for use
                        
                        status = self.getStatusText(iface.status(), statustext)
                        
                        coverart = iface.get_cover_path()

                        # if cover art found then use it, otherwise use default coverart image for this plugin
                        if len(coverart) > 0 and coverart.find("nocover.png") == -1:
                            coverart = coverart.encode("utf-8")

                            #handle escape chars, are there anymore???
                            coverart = coverart.replace(" ", "\ ")
                            coverart = coverart.replace("(", "\(")
                            coverart = coverart.replace(")", "\)")                            
                                                        
                        length = iface.get_length()
                        title = iface.get_title()
                        album = iface.get_album()
                        artist = iface.get_artist()
                        genre = iface.get_track_attr("genre")
                        year = iface.get_track_attr("year")
                        tracknumber = iface.get_track_attr("track")
                        filename = iface.get_track_attr("filename")  
                            
                        if len(length) > 0:
                            current_position_percent = str(int(iface.current_position()))
                            length_minutes, length_seconds = map(int,length.split(":"))
                            current_seconds = int((float(length_minutes)*60.0+float(length_seconds))*(float(current_position_percent)/100.0))
                            current_position = str(int(current_seconds/60%60)).rjust(1,"0")+":"+str(int(current_seconds%60)).rjust(2,"0")
                        else:
                            current_position_percent = "0"
                            current_position = "0:00"
                            
                        volume = str(int(iface.get_volume().split(".")[0]))
                        rating = str(int(iface.get_rating()))
                            
                        self.musicData = MusicData(status,coverart,title,album,length,artist,tracknumber,genre,year,filename,current_position_percent,current_position,rating,volume)
                            
                    except Exception, e:
                        self.logError("Issue calling the dbus service:"+e.__str__())

            if self.musicData != None:
                
                self.logInfo("Preparing output for datatype:"+datatype)

                if datatype == "ST": #status
                    if self.musicData.status == None or len(self.musicData.status) == 0:
                        output = None
                    else:
                        output = self.musicData.status

                elif datatype == "CA": #coverart
                    if self.musicData.coverart == None or len(self.musicData.coverart) == 0:
                        output = None
                    else:
                        output = self.musicData.coverart
                            
                elif datatype == "TI": #title
                    if self.musicData.title == None or len(self.musicData.title) == 0:
                        output = None
                    else:
                        output = self.musicData.title
                        
                elif datatype == "AL": #album
                    if self.musicData.album == None or len(self.musicData.album) == 0:
                        output = None
                    else:
                        output = self.musicData.album
                        
                elif datatype == "AR": #artist
                    if self.musicData.artist == None or len(self.musicData.artist) == 0:
                        output = None
                    else:
                        output = self.musicData.artist
                        
                elif datatype == "GE": #genre
                    if self.musicData.title == genre or len(self.musicData.genre) == 0:
                        output = None
                    else:
                        output = self.musicData.genre
                        
                elif datatype == "YR": #year
                    if self.musicData.year == None or len(self.musicData.year) == 0:
                        output = None
                    else:
                        output = self.musicData.year

                elif datatype == "TN": #tracknumber
                    if self.musicData.tracknumber == None or len(self.musicData.tracknumber) == 0:
                        output = None
                    else:
                        output = self.musicData.tracknumber
                                                
                elif datatype == "FN": #filename
                    if self.musicData.filename == None or len(self.musicData.filename) == 0:
                        output = None
                    else:
                        output = self.musicData.filename

                elif datatype == "LE": # length
                    if self.musicData.length == None or len(self.musicData.length) == 0:
                        output = None
                    else:
                        output = self.musicData.length
                        
                elif datatype == "PP": #current position in percent
                    if self.musicData.current_position_percent == None or len(self.musicData.current_position_percent) == 0:
                        output = None
                    else:
                        output = self.musicData.current_position_percent
                        
                elif datatype == "PT": #current position in time
                    if self.musicData.current_position == None or len(self.musicData.current_position) == 0:
                        output = None
                    else:
                        output = self.musicData.current_position
                        
                elif datatype == "VO": #volume
                    if self.musicData.volume == None or len(self.musicData.volume) == 0:
                        output = None
                    else:
                        output = self.musicData.volume
                        
                elif datatype == "RT": #rating
                    if self.musicData.rating == None or self.isNumeric(self.musicData.rating) == False:
                        output = None
                    else:
                        rating = int(self.musicData.rating)
                        if rating > 0:
                            output = u"".ljust(rating,ratingchar)
                        elif rating == 0:
                            output = u""
                        else:
                            output = None
                else:
                    self.logError("Unknown datatype provided: " + datatype)
                    return u""

            if output == None or self.musicData == None:
                if datatype in ["LE","PT"]:
                    output = unknown_time
                elif datatype in ["PP","VO","YR","TN"]:
                    output = unknown_number
                elif datatype == "CA":
                    output = ""                    
                else:
                    output = unknown_string
            
            return output
        
        except SystemExit:
            self.logError("System Exit!")
            return u""
        except Exception, e:
            traceback.print_exc()
            self.logError("Unknown error when calling getOutputText:" + e.__str__())
            return u""

    def getStatusText(self, status, statustext):
        
        if status != None:        
            statustextparts = statustext.split(",")
            
            if status == "playing":
                return statustextparts[0]
            elif status == "paused":
                return statustextparts[1]
            elif status == "stopped":
                return statustextparts[2]
            
        else:
            return status


    def getTemplateItemOutput(self, template_text):
        
        # keys to template data
        DATATYPE_KEY = "datatype"
        RATINGCHAR_KEY = "ratingchar"
        STATUSTEXT_KEY = "statustext"
        NOUNKNOWNOUTPUT_KEY = "nounknownoutput"
        
        datatype = None
        ratingchar = self.options.ratingchar #default to command line option
        statustext = self.options.statustext #default to command line option
        nounknownoutput = self.options.nounknownoutput #default to command line option
        
        for option in template_text.split('--'):
            if len(option) == 0 or option.isspace():
                continue
            
            # not using split here...it can't assign both key and value in one call, this should be faster
            x = option.find('=')
            if (x != -1):
                key = option[:x].strip()
                value = option[x + 1:].strip()
                if value == "":
                    value = None
            else:
                key = option.strip()
                value = None
            
            try:
                if key == DATATYPE_KEY:
                    datatype = value
                elif key == RATINGCHAR_KEY:
                    ratingchar = value
                elif key == STATUSTEXT_KEY:
                    statustext = value
                elif key == NOUNKNOWNOUTPUT_KEY:
                    nounknownoutput = True
                else:
                    self.logError("Unknown template option: " + option)

            except (TypeError, ValueError):
                self.logError("Cannot convert option argument to number: " + option)
                return u""
                
        if datatype != None:
            return self.getOutputData(datatype, ratingchar, statustext, nounknownoutput)
        else:
            self.logError("Template item does not have datatype defined")
            return u""


    def getOutputFromTemplate(self, template):
        output = u""
        end = False
        a = 0
        
        # a and b are indexes in the template string
        # moving from left to right the string is processed
        # b is index of the opening bracket and a of the closing bracket
        # everything between b and a is a template that needs to be parsed
        while not end:
            b = template.find('[', a)
            
            if b == -1:
                b = len(template)
                end = True
            
            # if there is something between a and b, append it straight to output
            if b > a:
                output += template[a : b]
                # check for the escape char (if we are not at the end)
                if template[b - 1] == '\\' and not end:
                    # if its there, replace it by the bracket
                    output = output[:-1] + '['
                    # skip the bracket in the input string and continue from the beginning
                    a = b + 1
                    continue
                    
            if end:
                break
            
            a = template.find(']', b)
            
            if a == -1:
                self.logError("Missing terminal bracket (]) for a template item")
                return u""
            
            # if there is some template text...
            if a > b + 1:
                output += self.getTemplateItemOutput(template[b + 1 : a])
            
            a = a + 1

        return output
    
    def writeOutput(self):

        if self.options.template != None:
            #load the file
            try:
                fileinput = codecs.open(os.path.expanduser(self.options.template), encoding='utf-8')
                template = fileinput.read()
                fileinput.close()
            except Exception, e:
                self.logError("Error loading template file: " + e.__str__())
            else:
                output = self.getOutputFromTemplate(template)
        else:
            output = self.getOutputData(self.options.datatype, self.options.ratingchar, self.options.statustext, self.options.nounknownoutput)

        print output.encode("utf-8")

    def isNumeric(self,value):
        try:
            temp = int(value)
            return True
        except:
            return False

    def logInfo(self, text):
        if self.options.verbose == True:
            print >> sys.stdout, "INFO: " + text

        if self.options.infologfile != None:
            datetimestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
            fileoutput = open(self.options.infologfile, "ab")
            fileoutput.write(datetimestamp+" INFO: "+text+"\n")
            fileoutput.close()
            
    def logError(self, text):
        print >> sys.stderr, "ERROR: " + text
        
        if self.options.errorlogfile != None:
            datetimestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") 
            fileoutput = open(self.options.errorlogfile, "ab")
            fileoutput.write(datetimestamp+" ERROR: "+text+"\n")
            fileoutput.close()
            
def main():
    
    parser = CommandLineParser()
    (options, args) = parser.parse_args()

    if options.version == True:
        print >> sys.stdout,"conkyExaile v.2.04"
    else:
        if options.verbose == True:
            print >> sys.stdout, "*** INITIAL OPTIONS:"
            print >> sys.stdout, "    datatype:", options.datatype
            print >> sys.stdout, "    template:", options.template
            print >> sys.stdout, "    ratingchar:", options.ratingchar
            print >> sys.stdout, "    nounknownoutput:", options.nounknownoutput
            print >> sys.stdout, "    verbose:", options.verbose
            print >> sys.stdout, "    errorlogfile:",options.errorlogfile
            print >> sys.stdout, "    infologfile:",options.infologfile
            
        exaileinfo = ExaileInfo(options)
        exaileinfo.writeOutput()
    
if __name__ == '__main__':
    main()
    sys.exit()
 
Última edição:
Ora bem, finalmente me aventurei a usar o Conky :victory:
Aqui fica a minha primeira config (ou melhor, a primeira acabada com sucesso):

Código:
background no
font Sans:size=9
use_xft yes
xftalpha 0.9
update_interval 1.0
total_run_times 0
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 220 5
maximum_width 210
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes
default_color white
default_shade_color black
default_outline_color green
alignment middle_right
gap_x 0
gap_y 0
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale no
uppercase no

TEXT
${alignc}Ubuntu 9.10
${alignc}$sysname $kernel $alignr
${alignc}------------------------------------------------------------------
Intel Pentium 4 ${alignr}${freq} MHz
Processos: ${alignr}$processes ($running_processes em actividade)
CPU ${alignr}${cpu cpu1}%
${cpubar 4}
${alignc}------------------------------------------------------------------
Disco ${alignr}${fs_used /}/${fs_size /}
${fs_bar 5 /}
Ram ${alignr}${mem}/${memmax}
$membar
Swap ${alignr}${swap}/${swapmax}
$swapbar
${alignc}------------------------------------------------------------------
Download ${alignr}Upload
${downspeed wlan0} ${alignr}${upspeed wlan0}
${downspeedgraph wlan0 10,50} ${alignr}${upspeedgraph wlan0 10,50}
${totaldown wlan0} ${alignr}${totalup wlan0}
Sinal ${alignr}${wireless_link_qual_perc wlan0}
${wireless_link_bar wlan0}
${alignc}------------------------------------------------------------------

Ponho o resultado final dentro de momentos :)

Edit: Ora aqui está o belo do Conky:

 
Última edição:
aqui fica o meu conky

http://3.bp.blogspot.com/_cPl2b3fkuN4/S3bVdD623XI/AAAAAAAAAG8/LHWWryEc1Iw/s1600-h/conky

Código:
alignment top_right

background no

border_margin 2
border_width 1

top_cpu_separate false

default_color white
default_shade_color black
default_outline_color white

default_color white
default_shade_color black
default_outline_color white

double_buffer yes

draw_borders no
draw_graph_borders no
draw_outline no
draw_borders no
draw_shades no

gap_x 5
gap_y 5

override_utf8_locale no

own_window yes
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

short_units yes

stippled_borders 8

update_interval 1.5

use_spacer right

use_xft yes

xftalpha 0.8

xftfont Terminus:size=8

TEXT

${font StyleBats:size=14}q${font}${color slate grey} Uptime: ${color #ddaa00}$uptime

${color }${font StyleBats:size=14}p${font}${color slate grey} Bateria: ${color #ddaa00}$alignr$battery_time
${color }${battery_bar BAT0} 
$alignr${battery_percent}%

${font StyleBats:size=14}a${font}${color slate grey} Cpu:  ${color }Intel Core 2 Duo T7700
${font weather:size=20}z${font}${color slate grey} Temp: ${color }${acpitemp}C
${font StyleBats:size=14}x${font}${color slate grey} Frequencia: ${color }${freq cpu0}MHz

${font xspiralmental:size=14}D${font}${color slate grey} CPU Core 1: ${color }$alignr ${cpu cpu0}%
${cpubar cpu0}

${font xspiralmental:size=14}D${font}${color slate grey} CPU Core 2: ${color }$alignr ${cpu cpu1}%
${cpubar cpu1}

${font StyleBats:size=14}y${font}${color slate grey} Ram:  
${alignr}${color }$mem de $memmax
${membar}
${alignr}$memperc%

${font PizzaDude Bullets:size=16}k${font}${color slate grey} Ubuntu 9.10 ${color } 

${alignr}${color slate grey}Ocupado:${color } ${fs_used /}  ${color slate grey}Livre:${color } ${fs_free /}
${fs_bar /}
${color slate grey}Total: ${color }${fs_size /}${alignr} 

${color }${font PizzaDude Bullets:size=16}l${font}${color slate grey} Windows 7 ${color } 

${alignr}${color slate grey}Ocupado:${color } ${fs_used /media/Windows 7}  ${color slate grey}Livre:${color } ${fs_free /media/Windows 7}
${fs_bar /media/Windows 7}
${color slate grey}Total: ${color }${fs_size /media/Windows 7}${alignr}${color slate grey} 

${color }${font PizzaDude Bullets:size=16}m${font}${color slate grey} Downloads ${color } 

${alignr}${color slate grey}Ocupado:${color } ${fs_used /media/Downloads}  ${color slate grey}Livre:${color } ${fs_free /media/Downloads}
${fs_bar /media/Downloads}
${color slate grey}Total: ${color }${fs_size /media/Downloads}${alignr}${color slate grey} 

${color #ddaa00}${alignc}Wireless

${color }${font StyleBats:size=14}r${font}${color slate grey}${color slate grey} Ligado a:${color lightgrey} ${wireless_essid wlan0}
${font StyleBats:size=14}n${font}${color slate grey}${color slate grey} Sinal: ${color lightgrey}${wireless_link_bar wlan0}

${color }${font PizzaDude Bullets:size=16}T ${font}${color slate grey} ${color lightgrey}${downspeed wlan0} k/s${downspeedgraph wlan0 10,50} ${color slate grey} ${totaldown wlan0}

${color }${font PizzaDude Bullets:size=16}N ${font}${color slate grey} ${color lightgrey}${upspeed wlan0} k/s${upspeedgraph wlan0 10,50} ${color slate grey} ${totalup wlan0}
cumps
 
Última edição:
Vamos lá desenterrar isto:

A config:

  1. http://freetexthost.com/qcnr3vqlkv
  2. http://freetexthost.com/yvzuscl4sk
  3. http://freetexthost.com/tk1fv6liwi
O screenshot:

2a8gsiw.png
 
Conky baseado daqui.

.conkyrc
Código:
#==============================================================================#                               conkyrc_orange
#
#  author  : SLK
#  version : v2011011601
#  license : Distributed under the terms of GNU GPL version 2 or later
#
#==============================================================================


background yes
update_interval 1


cpu_avg_samples 2
net_avg_samples 5
temperature_unit celsius


double_buffer yes
no_buffers yes
text_buffer_size 2048


gap_x -32 #5 #left-right
#gap_y 64
gap_y 0
minimum_size 210 450
maximum_width 650
own_window yes
own_window_type desktop
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
border_inner_margin 0
border_outer_margin 0
alignment tl


draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no


override_utf8_locale yes
use_xft yes
font caviar dreams:style=Regular:pixelsize=7
xftfont caviar dreams:size=8
xftalpha 0.5
uppercase no


default_color FFFFFF
color1 FFFFFF
color2 AAAAAA
color3 888888
color4 EF5A29


lua_load [B]~/.config/conky/orange/conky_orange.lua[/B]
lua_draw_hook_post main


TEXT
${voffset 36}${color1}
${goto 95}${font Ubuntu:size=23}${time %e}${voffset 12}${goto 85}${font ubuntu:size=8}${time %A}
${goto 85}${voffset 2}${font Ubuntu:size=9}${time %b}${voffset -2} ${font ubuntu:size=12}${time %Y}${font}


${voffset 68}
${goto 90}${font Ubuntu:size=7,weight:bold}${color}CPU
${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${top name 1}${alignr}${top cpu 1}%
${goto 90}${color2}${top name 2}${alignr}${top cpu 2}%
${goto 90}${color3}${top name 3}${alignr}${top cpu 3}%
${goto 90}${cpugraph 11,100 666666 666666}
${goto 90}${voffset -10}${color}${threads} processos 


${voffset 21}
${goto 90}${font Ubuntu:size=7,weight:bold}${color}MEMORIA
${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${top_mem name 1}${alignr}${top_mem mem 1}%
${goto 90}${color2}${top_mem name 2}${alignr}${top_mem mem 2}%
${goto 90}${color3}${top_mem name 3}${alignr}${top_mem mem 3}%


${voffset 38}
${goto 90}${font Ubuntu:size=7,weight:bold}${color}DADOS
${goto 90}${font Ubuntu:size=7,weight:normal}/ - ${alignr}${fs_free /} de ${fs_size /}
${goto 90}/Arquivo - ${alignr} ${fs_free /media/Arquivo} de ${fs_size /media/Arquivo}
${goto 90}/Pastos - ${alignr} ${fs_free /media/Pastos} de ${fs_size /media/Pastos}


${voffset 1}
${goto 90}${font Ubuntu:size=12,weight:bold}${color3}SISTEMA${alignr}
${goto 90}${font openlogos:size=80}J${font}
${goto 90}${font Ubuntu:size=7}${color1}HOST ${color2} $nodename 
${goto 90}${color}DEBIAN ${color2} ${exec cat /etc/debian_version} 
${goto 90}${color}Kernel: ${color2}${kernel}${color}
${goto 90}${color1}CPU: ${color2}${acpitemp}C 


${goto 90}${diskiograph 30,100 666666 666666}${voffset -47}

conky_orange.lua
Código:
--==============================================================================--                            conky_orange.lua
--
--  author  : SLK
--  version : v2011011601
--  license : Distributed under the terms of GNU GPL version 2 or later
--
--==============================================================================


require 'cairo'


--------------------------------------------------------------------------------
--                                                                    clock DATA
-- HOURS
clock_h = {
    {
    name='time',                   arg='%H',                    max_value=24,
    x=110,                         y=80,
    graph_radius=53,
    graph_thickness=3,
    graph_unit_angle=30,           graph_unit_thickness=30,
    graph_bg_colour=0xFFFFFF,      graph_bg_alpha=0.0,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
    txt_radius=34,
    txt_weight=1,                  txt_size=8.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=0.6,
    graduation_radius=53,
    graduation_thickness=6,        graduation_mark_thickness=2,
    graduation_unit_angle=30,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    },
}
-- MINUTES
clock_m = {
    {
    name='time',                   arg='%M',                    max_value=60,
    x=110,                         y=80,
    graph_radius=57,
    graph_thickness=2,
    graph_unit_angle=6,            graph_unit_thickness=6,
    graph_bg_colour=0xFFFFFF,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
    txt_radius=70,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=0.6,
    graduation_radius=57,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=30,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    },
}
-- SECONDS
clock_s = {
    {
    name='time',                   arg='%S',                    max_value=60,
    x=110,                         y=80,
    graph_radius=50,
    graph_thickness=2,
    graph_unit_angle=6,            graph_unit_thickness=2,
    graph_bg_colour=0xFFFFFF,      graph_bg_alpha=0.0,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.2,
    txt_radius=40,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=0.3,
    graduation_radius=0,
    graduation_thickness=0,        graduation_mark_thickness=0,
    graduation_unit_angle=0,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.0,
    },
}


--------------------------------------------------------------------------------
--                                                                    gauge DATA
gauge = {
{
    name='cpu',                    arg='cpu0',                  max_value=100,
    x=85,                          y=200,
    graph_radius=24,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
    hand_fg_colour=0xFFFFFF,       hand_fg_alpha=1.0,
    txt_radius=34,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=1.0,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
    name='cpu',                    arg='cpu1',                  max_value=100,
    x=85,                          y=200,
    graph_radius=18,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
    hand_fg_colour=0xFFFFFF,       hand_fg_alpha=1.0,
    txt_radius=10,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=1.0,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
    name='memperc',                arg='',                      max_value=100,
    x=85,                          y=300,
    graph_radius=24,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
    hand_fg_colour=0xFFFFFF,       hand_fg_alpha=1.0,
    txt_radius=10,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=1.0,
    graduation_radius=23,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
    name='fs_used_perc',           arg='/media/Arquivo',                     max_value=100,
    x=85,                          y=405,
    graph_radius=24,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
    hand_fg_colour=0xFFFFFF,       hand_fg_alpha=1.0,
    txt_radius=34,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=1.0,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},
{
    name='fs_used_perc',           arg='/',                max_value=100,
    x=85,                          y=405,
    graph_radius=18,
    graph_thickness=5,
    graph_start_angle=180,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
    hand_fg_colour=0xFFFFFF,       hand_fg_alpha=1.0,
    txt_radius=10,
    txt_weight=0,                  txt_size=8.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=1.0,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
    caption='',
    caption_weight=1,              caption_size=8.0,
    caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},
}


-------------------------------------------------------------------------------
--                                                                 rgb_to_r_g_b
-- converts color in hexa to decimal
--
function rgb_to_r_g_b(colour, alpha)
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end


-------------------------------------------------------------------------------
--                                                            angle_to_position
-- convert degree to rad and rotate (0 degree is top/north)
--
function angle_to_position(start_angle, current_angle)
    local pos = current_angle + start_angle
    return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) )
end


-------------------------------------------------------------------------------
--                                                              draw_clock_ring
-- displays clock
--
function draw_clock_ring(display, data, value)
    local max_value = data['max_value']
    local x, y = data['x'], data['y']
    local graph_radius = data['graph_radius']
    local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
    local graph_unit_angle = data['graph_unit_angle']
    local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
    local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']


    -- background ring
    cairo_arc(display, x, y, graph_radius, 0, 2 * math.pi)
    cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
    cairo_set_line_width(display, graph_thickness)
    cairo_stroke(display)


    -- arc of value
    local val = (value % max_value)
    local i = 1
    while i <= val do
        cairo_arc(display, x, y, graph_radius,(  ((graph_unit_angle * i) - graph_unit_thickness)*(2*math.pi/360)  )-(math.pi/2),((graph_unit_angle * i) * (2*math.pi/360))-(math.pi/2))
        cairo_set_source_rgba(display,rgb_to_r_g_b(graph_fg_colour,graph_fg_alpha))
        cairo_stroke(display)
        i = i + 1
    end
    local angle = (graph_unit_angle * i) - graph_unit_thickness


    -- graduations marks
    local graduation_radius = data['graduation_radius']
    local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
    local graduation_unit_angle = data['graduation_unit_angle']
    local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
    if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
        local nb_graduation = 360 / graduation_unit_angle
        local i = 1
        while i <= nb_graduation do
            cairo_set_line_width(display, graduation_thickness)
            cairo_arc(display, x, y, graduation_radius, (((graduation_unit_angle * i)-(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2),(((graduation_unit_angle * i)+(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2))
            cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
            cairo_stroke(display)
            cairo_set_line_width(display, graph_thickness)
            i = i + 1
        end
    end


    -- text
    local txt_radius = data['txt_radius']
    local txt_weight, txt_size = data['txt_weight'], data['txt_size']
    local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
    local movex = txt_radius * (math.cos((angle * 2 * math.pi / 360)-(math.pi/2)))
    local movey = txt_radius * (math.sin((angle * 2 * math.pi / 360)-(math.pi/2)))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight);
    cairo_set_font_size (display, txt_size);
    cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha));
    cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3);
    cairo_show_text (display, value);
    cairo_stroke (display);
end


-------------------------------------------------------------------------------
--                                                              draw_gauge_ring
-- displays gauges
--
function draw_gauge_ring(display, data, value)
    local max_value = data['max_value']
    local x, y = data['x'], data['y']
    local graph_radius = data['graph_radius']
    local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
    local graph_start_angle = data['graph_start_angle']
    local graph_unit_angle = data['graph_unit_angle']
    local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
    local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
    local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha']
    local graph_end_angle = (max_value * graph_unit_angle) % 360


    -- background ring
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
    cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
    cairo_set_line_width(display, graph_thickness)
    cairo_stroke(display)


    -- arc of value
    local val = value % (max_value + 1)
    local start_arc = 0
    local stop_arc = 0
    local i = 1
    while i <= val do
        start_arc = (graph_unit_angle * i) - graph_unit_thickness
        stop_arc = (graph_unit_angle * i)
        cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
        cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
        cairo_stroke(display)
        i = i + 1
    end
    local angle = start_arc


    -- hand
    start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2)
    stop_arc = (graph_unit_angle * val)
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
    cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
    cairo_stroke(display)


    -- graduations marks
    local graduation_radius = data['graduation_radius']
    local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
    local graduation_unit_angle = data['graduation_unit_angle']
    local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
    if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
        local nb_graduation = graph_end_angle / graduation_unit_angle
        local i = 0
        while i < nb_graduation do
            cairo_set_line_width(display, graduation_thickness)
            start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
            stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
            cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
            cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
            cairo_stroke(display)
            cairo_set_line_width(display, graph_thickness)
            i = i + 1
        end
    end


    -- text
    local txt_radius = data['txt_radius']
    local txt_weight, txt_size = data['txt_weight'], data['txt_size']
    local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
    local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle))
    local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight)
    cairo_set_font_size (display, txt_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
    cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
    cairo_show_text (display, value)
    cairo_stroke (display)


    -- caption
    local caption = data['caption']
    local caption_weight, caption_size = data['caption_weight'], data['caption_size']
    local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha']
    local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight);
    cairo_set_font_size (display, caption_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
    cairo_move_to (display, x + tox + 5, y + toy + 1)
    -- bad hack but not enough time !
    if graph_start_angle < 105 then
        cairo_move_to (display, x + tox - 30, y + toy + 1)
    end
    cairo_show_text (display, caption)
    cairo_stroke (display)
end


-------------------------------------------------------------------------------
--                                                               go_clock_rings
-- loads data and displays clock
--
function go_clock_rings(display)
    local function load_clock_rings(display, data)
        local str, value = '', 0
        str = string.format('${%s %s}',data['name'], data['arg'])
        str = conky_parse(str)
        value = tonumber(str)
        draw_clock_ring(display, data, value)
    end
    
    for i in pairs(clock_h) do
        load_clock_rings(display, clock_h[i])
    end
    for i in pairs(clock_m) do
        load_clock_rings(display, clock_m[i])
    end
    for i in pairs(clock_s) do
        load_clock_rings(display, clock_s[i])
    end
end


-------------------------------------------------------------------------------
--                                                               go_gauge_rings
-- loads data and displays gauges
--
function go_gauge_rings(display)
    local function load_gauge_rings(display, data)
        local str, value = '', 0
        str = string.format('${%s %s}',data['name'], data['arg'])
        str = conky_parse(str)
        value = tonumber(str)
        draw_gauge_ring(display, data, value)
    end
    
    for i in pairs(gauge) do
        load_gauge_rings(display, gauge[i])
    end
end


-------------------------------------------------------------------------------
--                                                                         MAIN
function conky_main()
    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)
    local display = cairo_create(cs)
    
    local updates = conky_parse('${updates}')
    update_num = tonumber(updates)
    
    if update_num > 5 then
        go_clock_rings(display)
        go_gauge_rings(display)
    end


end

Screenshot:
 
Aqui fica o meu:

Código:
background yes
    use_xft yes
    xftfont HandelGotD:size=8
    xftalpha 0.5
    update_interval 4.0
    total_run_times 0
    own_window no
    own_window_type normal
    own_window_transparent yes
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
    double_buffer yes
    minimum_size 200 5
    maximum_width 220
    draw_shades no
    draw_outline no
    draw_borders no
    draw_graph_borders yes
    default_color grey
    default_shade_color red
    default_outline_color green
    alignment top_right
    gap_x 5
    gap_y 5
    no_buffers yes
    uppercase no
    cpu_avg_samples 2
    override_utf8_locale no

TEXT
    SYSTEM ${hr 2}
    
    $sysname $kernel $alignr $machine
    Clock:$alignr${freq}MHz
    Host:$alignr$nodename
    Uptime:$alignr$uptime
    File System: $alignr${fs_type}
    Local Ip: ${alignr}${addr wlan0}

    CPU $alignr ${cpu cpu0}%
    ${cpugraph cpu0}

    MEM $alignc $mem / $memmax $alignr $memperc%
    $membar
    
    swap $alignc $swap / $swapmax $alignr $swapperc%
    ${swapbar}

    / $alignc ${fs_used /} / ${fs_size /} $alignr ${fs_free_perc /}%
    ${fs_bar /}
    
    $processes processes ($running_processes running)
    
    NAME $alignr PID    CPU
    ${top name 1} $alignr ${top pid 1} ${top cpu 1}
    ${top name 2} $alignr ${top pid 2} ${top cpu 2}
    ${top name 3} $alignr ${top pid 3} ${top cpu 3}
    ${top name 4} $alignr ${top pid 4} ${top cpu 4}
    ${top name 5} $alignr ${top pid 5} ${top cpu 5}
    ${top name 6} $alignr ${top pid 6} ${top cpu 6}
    ${top name 7} $alignr ${top pid 7} ${top cpu 7}
    ${top name 8} $alignr ${top pid 8} ${top cpu 8}
    ${top name 9} $alignr ${top pid 8} ${top cpu 9}
    
    NETWORK ${hr 2}
    
    Inbound $alignr ${downspeed wlan0}
    Total Down: $alignr ${totaldown wlan0}
    Outbound $alignr ${upspeed wlan0}
    Total Up: $alignr ${totalup wlan0}

bqXDi.png
 
Tenho tido sempre dificuldades em colocar os widgets de metereologia a funcionarem, sabem de algum que funcione bem ou algum site em que possa pesquisar em especifico?
 
Deixo o meu script

Código:
background no
font Sans:size=8
#xftfont Sans:size=10
use_xft yes
xftalpha 0.9
update_interval 2.0
total_run_times 0
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 220 5
maximum_width 220
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders yes
default_color white
default_shade_color black
default_outline_color green
alignment top_right
gap_x 12
gap_y 35
no_buffers yes
uppercase no
override_utf8_locale no
uppercase yes # set to yes if you want all text to be in uppercase

TEXT


${hr 1}

CPU ${alignr}${freq} MHz
${cpugraph}
${hr 1}

C-I $alignr${cpu cpu0}%  
${cpubar cpu0}
C-II $alignr${cpu cpu1}%  
${cpubar cpu1}
C-III $alignr${cpu cpu2}%  
${cpubar cpu2}
${hr 1}

CPU ${alignr}${acpitemp}c
GPU ${alignr}${hwmon 0 temp 1}c
HDD ${alignr}${hddtemp /dev/sda}c
${hr 1}

Ram       * $mem        * $memmax      * $memperc%
${membar}
SWP       * $swap                 * $swapmax    *   $swapperc%
${swapbar}
${hr 1}

HDD      * ${fs_used /}      * ${fs_free /}     * ${fs_size /}
${fs_bar}
E $alignr $diskio_write
${diskiograph_write }
L $alignr $diskio_read
${diskiograph_read }
${hr 1}

${addr eth1}
${downspeed eth1} /s${alignr}${upspeed eth1} /s
${downspeedgraph eth1 15,82}${alignr}${upspeedgraph eth1 15,82}
${totaldown eth1} ${alignr}${totalup eth1}  

${wireless_essid wlan0}
${downspeed wlan0} /s${alignr}${upspeed wlan0} /s
${downspeedgraph wlan0 15,82}${alignr}${upspeedgraph wlan0 15,82}
${totaldown wlan0} ${alignr}${totalup wlan0}
${hr 1}
 
Back
Topo