Tiny Core Linux
Tiny Core Extensions => TCE Talk => Extension requests => Topic started by: ali on May 17, 2011, 03:21:26 PM
-
can anyone please make a conky 1.8.1 extension?
the conkies in the repos are stripped down,
i want conky that supports xft, and lua with cairo bindings
-
..and I guess you'd like an extension for tolua also ;)
-
i'm not quite sure what tolua is
-
..something to do with lua bindings for cairo.
We'll also need a shared lua lib, which doesn't appear to be in any of the extensions.
-
I've got conky to compile with lua bindings - just waiting to see what the lua extension maintainer would like to do about the shared lib.
-
i tried compiling it but was missing the libraries
i'd be great if it worked
-
It seems to be working now - I'll post it after some more testing.
-
try this
the conky config:
background no
override_utf8_locale no
use_xft yes
xftfont cure:size=8
text_buffer_size 2048
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_type override
own_window_colour 191919
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 530 150
maximum_width 530
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes
default_color 888
default_shade_color fed053
default_outline_color 7f8f9f
alignment tr
gap_x 30
gap_y 40
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale no
color1 fff
border_inner_margin 4
border_outer_margin 1
own_window_argb_visual no
own_window_argb_value 200
lua_load ~/.conky/rings.lua
lua_draw_hook_pre main
TEXT
${voffset 20}${goto 130}$hr
${voffset 16}${font Ambitsek:size=18}${goto 24}${color1}${time %H.%M}${color}$font
${goto 45}${time %a %d %b}
${voffset 23}${goto 130}$hr
${voffset -85}${goto 175}CPU $freq_g GHz
${voffset 6}${goto 153}${top cpu 1} ${color1}${top name 1}${color}
${goto 153}${top cpu 2} ${color1}${top name 2}${color}
${goto 153}${top cpu 3} ${color1}${top name 3}${color}
${voffset 4}${goto 175}${loadavg}
${voffset -63}${goto 305}MEM ${memfree}/$memmax
${voffset 3}${goto 280}${top_mem mem 1} ${color1}${top_mem name 1}${color}
${goto 280}${top_mem mem 2} ${color1}${top_mem name 2}${color}
${goto 280}${top_mem mem 3} ${color1}${top_mem name 3}${color}
${voffset 3}${goto 305}$cached - $buffers
${voffset -60}${goto 430}ROOT
${goto 415}${color1}${fs_size /}${color}
${goto 410}${color1}${fs_used /}${color}
${goto 410}${color1}${fs_used_perc /} %${color}
${voffset -30}${goto 475}${color1}${fs_used_perc /media/Sunny} %${color}
${goto 465}${color1}${fs_used /media/Sunny}${color}
${goto 465}${color1}${fs_size /media/Sunny}${color}
${goto 455}DATA
the rings.lua
--[[
Ring Meters by londonali1010 (2009)
This script draws percentage meters as rings. It is fully customisable; all options are described in the script.
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
]]
--conky_background_color = 0x151515
--conky_background_alpha = 0.1
corner_r=30
main_bg_colour=0x181818
main_bg_alpha=0.9
ring_background_color = 0xe0e0e0
ring_background_alpha = 0.1
ring_foreground_color = 0xcecece
ring_foreground_alpha = 1
settings_table = {
{
name='time',
arg='%S',
max=60,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
x=70, y=75,
radius=55,
thickness=4,
start_angle=-58,
end_angle=58
},
{
name='time',
arg='%I.%M',
max=12,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
x=70, y=75,
radius=55,
thickness=12,
start_angle=-178,
end_angle=-62
},
{
name='time',
arg='%M.%S',
max=60,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
x=70, y=75,
radius=55,
thickness=8,
start_angle=62,
end_angle=178
},
{
name='cpu',
arg='cpu4',
max=100,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
x=170, y=75,
radius=23,
thickness=3,
start_angle=-180,
end_angle=0
},
{
name='cpu',
arg='cpu3',
max=100,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
x=170, y=75,
radius=26,
thickness=3,
start_angle=-180,
end_angle=0
},
{
name='cpu',
arg='cpu2',
max=100,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
x=170, y=75,
radius=29,
thickness=3,
start_angle=-180,
end_angle=0
},
{
name='cpu',
arg='cpu1',
max=100,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
x=170, y=75,
radius=32,
thickness=3,
start_angle=-180,
end_angle=0
},
{
name='memperc',
arg='',
max=100,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
x=300, y=75,
radius=25,
thickness=6,
start_angle=-180,
end_angle=-0
},
{
name='fs_used_perc',
arg='/media/Sunny',
max=100,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
g_alpha=ring_foreground_alpha,
x=480, y=75,
radius=24,
thickness=5,
start_angle=80,
end_angle=180
},
{
name='fs_used_perc',
arg='/',
max=100,
bg_colour=ring_background_color,
bg_alpha=ring_background_alpha,
fg_colour=ring_foreground_color,
fg_alpha=ring_foreground_alpha,
g_alpha=ring_foreground_alpha,
x=427, y=75,
radius=24,
thickness=5,
start_angle=-100,
end_angle=0
},
}
require 'cairo'
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(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
local 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>1 then
for i in pairs(settings_table) do
setup_rings(cr,settings_table[i])
end
end
cairo_destroy(cr)
end
--[[ This is a script made for draw a transaprent background for conky ]]
local function conky_draw_bg()
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)
cairo_move_to(cr,corner_r,0)
cairo_line_to(cr,w-corner_r,0)
cairo_curve_to(cr,w,0,w,0,w,corner_r)
cairo_line_to(cr,w,h-corner_r)
cairo_curve_to(cr,w,h,w,h,w-corner_r,h)
cairo_line_to(cr,corner_r,h)
cairo_curve_to(cr,0,h,0,h,0,h-corner_r)
cairo_line_to(cr,0,corner_r)
cairo_curve_to(cr,0,0,0,0,corner_r,0)
cairo_close_path(cr)
cairo_set_source_rgba(cr,rgb_to_r_g_b(main_bg_colour,main_bg_alpha))
cairo_fill(cr)
cairo_destroy(cr)
end
function conky_main()
conky_draw_bg()
conky_ring_stats()
end
it should look something like this
(http://upload.centerzone.it/images/17764400594099745317.png)
-
posted
Note:
1. I had to remove references in your configs to /media/sunny and 4 cpus :P
2. Your config will only work with Xorg-7.5 and not Xvesa
-
great job :)
http://i.imgur.com/tisoL.png
thank you
-
Thanks for the script. I added it to my conky, plus I submitted conkyforecast to the repo.
(http://i.imgur.com/S4adK.png)