if it helps you can use luarings and text with one script.
Code:
--[[
Conky Widgets by londonali1010 (2009)
Call this script in Conky using the following before TEXT (assuming you save this script to ~/scripts/conky_widgets.lua):
lua_load ~/Scripts/conky_widgets.lua
lua_draw_hook_pre load_widgets ]]
require 'cairo'
function draw_atext()
if conky_window==nil then return end
local w=conky_window.width
local h=conky_window.height
local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, w, h)
cr=cairo_create(cs)
-- Font
cairo_select_font_face (cr, "Verana", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
-- font size
cairo_set_font_size (cr, 30.0);
--font color
cairo_set_source_rgba (cr, 1, 1, 1, 1);
cairo_translate (cr, 128.0, 128.0);
-- angle
cairo_rotate(cr,-0.38);
-- text position
cairo_move_to (cr, 190.0, 470.0);
-- shown text
cairo_show_text (cr, conky_parse('${time %H:%M}'))
cairo_rotate(cr,-0.10);
cairo_set_font_size (cr, 12.0);
cairo_move_to (cr, 100.0, 480.0);
cairo_show_text (cr, conky_parse('${time %h %d}'))
cairo_rotate(cr,-0.18);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, -60.0, 485.0);
cairo_show_text (cr, conky_parse('${time %A}'))
cairo_rotate(cr,-0.90);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, -457.0, 243.0);
cairo_show_text (cr, conky_parse('${if_match ${execi 5 ~/Documents/code/hddmonit.sh} > 60}${color red}${execi 5 ~/Documents/code/hddmonit.sh}$color$else${execi 5 ~/Documents/code/hddmonit.sh}$endif°C'))
cairo_rotate(cr,2.15);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, 465.0, 268.0);
cairo_show_text (cr, conky_parse('Gmail: ${execi 600 conkyEmail --servertype=IMAP --servername=imap.googlemail.com --username=xyz --password=xyz --ssl}'))
cairo_rotate(cr,-0.42);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, 380.0, 460.0);
cairo_show_text (cr, conky_parse('${execi 3600 conkyForecast -i --location=USAZ0207 --datatype=LT}'))
cairo_rotate(cr,-0.05);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, 410.0, 485.0);
cairo_show_text (cr, conky_parse('Now Playing: '))
cairo_rotate(cr,-0.08);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, 470.0, 530.0);
cairo_show_text (cr, conky_parse('${exec rhythmbox-client --no-start --print-playing}'))
cairo_rotate(cr,-0.15);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, 670.0, 640.0);
cairo_show_text (cr, conky_parse('${execi 3600 conkyForecast -i --location=USAZ0207 --datatype=CC}'))
cairo_rotate(cr,-0.50);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, 395.0, 950.0);
cairo_show_text (cr, conky_parse('${execi 3600 conkyForecast -i --location=USAZ0207 --datatype=HT}'))
cairo_rotate(cr,-0.90);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, -460.0, 930.0);
cairo_show_text (cr, conky_parse('${if_match ${acpitemp} > 60}${color red}${acpitemp}$color$else${acpitemp}$endif°C'))
cairo_rotate(cr,1.90);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, 935.0, 120.0);
cairo_show_text (cr, conky_parse('U:${upspeed eth1}/s '))
cairo_rotate(cr,-0.10);
cairo_set_font_size (cr, 14.0);
cairo_move_to (cr, 860.0, 225.0);
cairo_show_text (cr, conky_parse('D:${downspeed eth1}/s'))
cairo_stroke (cr);
end
--[[
Ring Meters by londonali1010 (2009)
This script draws percentage meters as rings. It is fully customisable; all options are described in the script.
IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement on line 145 uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0.5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.
To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
lua_load ~/scripts/rings-v1.2.1.lua
lua_draw_hook_pre ring_stats
Changelog:
+ v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009)
+ v1.2 -- Added option for the ending angle of the rings (07.10.2009)
+ v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numerical value rather than a percentage (29.09.2009)
+ v1.0 -- Original release (28.09.2009)
]]
settings_table = {
{
name='cpu',
arg='cpu1',
max=100,
bg_colour=0xffffff,
bg_alpha=0.4,
fg_colour=0xffffff,
fg_alpha=0.8,
x=420, y=2545,
radius=2000,
thickness=5,
start_angle=12,
end_angle=16.6
},
{
name='cpu',
arg='cpu2',
max=100,
bg_colour=0xffffff,
bg_alpha=0.2,
fg_colour=0xffffff,
fg_alpha=0.6,
x=993, y=642,
radius=13,
thickness=5,
start_angle=15,
end_angle=160
},
{
name='fs_free_perc',
arg='/',
max=100,
bg_colour=0xffffff,
bg_alpha=0.2,
fg_colour=0xffffff,
fg_alpha=0.6,
x=800, y=-530,
radius=1200,
thickness=5,
start_angle=185.7,
end_angle=199
},
{
name='memperc',
arg='',
max=100,
bg_colour=0xffffff,
bg_alpha=0.2,
fg_colour=0xffffff,
fg_alpha=0.6,
x=405, y=582,
radius=20,
thickness=5,
start_angle=190,
end_angle=330
},
{
name='swap',
arg='',
max=100,
bg_colour=0xffffff,
bg_alpha=0.2,
fg_colour=0xffffff,
fg_alpha=0.6,
x=625, y=830,
radius=350,
thickness=5,
start_angle=320,
end_angle=340
},
}
require 'cairo'
function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function draw_ring(cr,t,pt)
local w,h=conky_window.width,conky_window.height
local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
local angle_0=sa*(2*math.pi/360)-math.pi/2
local angle_f=ea*(2*math.pi/360)-math.pi/2
local t_arc=t*(angle_f-angle_0)
-- Draw background ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
cairo_set_line_width(cr,ring_w)
cairo_stroke(cr)
-- Draw indicator ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
cairo_stroke(cr)
end
function conky_ring_stats()
local function setup_rings(cr,pt)
local str=''
local value=0
str=string.format('${%s %s}',pt['name'],pt['arg'])
str=conky_parse(str)
value=tonumber(str)
if value == nil then value = 0 end
pct=value/pt['max']
draw_ring(cr,pct,pt)
end
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 cr=cairo_create(cs)
local updates=conky_parse('${updates}')
update_num=tonumber(updates)
if update_num>5 then
for i in pairs(settings_table) do
setup_rings(cr,settings_table[i])
end
end
end
function conky_load_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)
local cr=cairo_create(cs)
local updates=conky_parse('${updates}')
update_num=tonumber(updates)
if update_num>5 then
draw_atext()
conky_ring_stats()
end
end
Bookmarks