For those familiar with Conky, this should make a bit more sense.
I am trying to get the following Lua script to actually display its values for the 'NET' ring. I know that the code works outside of the script in Conky itself because running conky -t '${downspeedf wlan0}'
outputs an acceptable value. I also know that the conky_parse
bit in the code below works because all of the other rings are running fine. Why isn't it outputting the values either as numbers (in the center of the ring) or as a ring itself?
(I cut some unrelated stuff out so that the question would fit.)
-------------------------------------------------------------------------------
-- draw_gauge_ring
-- display gauges
--
function draw_gauge_ring(data)
local value = data.value
local value_max = data.value_max
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 = (value_max * graph_unit_angle) % 360
if value == nil then value=0 end
-- background ring
cairo_arc(cr, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
cairo_set_source_rgba(cr, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
cairo_set_line_width(cr, graph_thickness)
cairo_stroke(cr)
-- arc of value
local val = value % (value_max + 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(cr, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
cairo_set_source_rgba(cr, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
cairo_stroke(cr)
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(cr, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
cairo_set_source_rgba(cr, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
cairo_stroke(cr)
-- 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(cr, graduation_thickness)
start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
cairo_arc(cr, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
cairo_set_source_rgba(cr,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
cairo_stroke(cr)
cairo_set_line_width(cr, 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 (cr, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight)
cairo_set_font_size (cr, txt_size)
cairo_set_source_rgba (cr, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
cairo_move_to (cr, x + movex - (txt_size / 2), y + movey + 3)
cairo_show_text (cr, value)
cairo_stroke (cr)
-- 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 (cr, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight);
cairo_set_font_size (cr, caption_size)
cairo_set_source_rgba (cr, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
cairo_move_to (cr, x + tox + 5, y + toy + 3)
-- bad hack but not enough time !
if graph_start_angle < 105 then
cairo_move_to (cr, x + tox - 30, y + toy + 1)
end
cairo_show_text (cr, caption)
cairo_stroke (cr)
end
-------------------------------------------------------------------------------
-- draw_ring
-- simple rings
--
function draw_ring(data)
local value = data.value
local value_max = data.value_max
local bgc = data.bg_colour
local bga = data.bg_alpha
local fgc = data.fg_colour
local fga = data.fg_alpha
local xc, yc = data.x, data.y
local radius = data.radius
local thickness = data.thickness
local sa = data.start_angle
local ea = data.end_angle
local lr = data.lr
if value == nil then value=0 end
local pct = value/value_max
local angle_0 = sa * math.pi/180 - math.pi/2
local angle_f = ea * math.pi/180 - math.pi/2
local pct_arc = pct * (angle_f - angle_0)
-- Draw background ring
cairo_arc(cr, xc, yc, radius, angle_0, angle_f)
cairo_set_source_rgba(cr, rgb_to_r_g_b(bgc, bga))
cairo_set_line_width(cr, thickness)
cairo_stroke(cr)
-- Draw indicator ring
cairo_arc(cr, xc, yc, radius, angle_0, angle_0 + pct_arc)
cairo_set_source_rgba(cr, rgb_to_r_g_b(fgc, fga))
cairo_stroke(cr)
end
-------------------------------------------------------------------------------
-- draw_gauge_bars
-- display gauge
--
function draw_gauge_bars(data)
local x=data.x
local y=data.y
local divisions=data.divisions
local div_width=data.div_width
local div_height=data.div_height
local div_gap=data.div_gap
local br,bg,bb,ba=rgb_to_r_g_b(data.bg_color, data.bg_alpha)
local sr,sg,sb,sa=rgb_to_r_g_b(data.st_color, data.fg_alpha)
local mr,mg,mb,ma=rgb_to_r_g_b(data.mid_color, data.fg_alpha)
local er,eg,eb,ea=rgb_to_r_g_b(data.end_color, data.fg_alpha)
if data.value==nil then value=0 else value=data.value end
local value_max=data.value_max
local value_divs=(value/value_max)*divisions
cairo_set_line_width (cr,div_width)
for i=1,divisions do
if i<(divisions/2) and i<=value_divs then
colr=((mr-sr)*(i/(divisions/2)))+sr
colg=((mg-sg)*(i/(divisions/2)))+sg
colb=((mb-sb)*(i/(divisions/2)))+sb
cola=((ma-sa)*(i/(divisions/2)))+sa
elseif i>=(divisions/2) and i<=value_divs then
colr=((er-mr)*((i-(divisions/2))/(divisions/2)))+mr
colg=((eg-mg)*((i-(divisions/2))/(divisions/2)))+mg
colb=((eb-mb)*((i-(divisions/2))/(divisions/2)))+mb
cola=((ea-ma)*((i-(divisions/2))/(divisions/2)))+ma
else
colr=br
colg=bg
colb=bb
cola=ba
end
cairo_set_source_rgba (cr,colr,colg,colb,cola)
if data.orientation == "horizontal" then
cairo_move_to (cr,x+((div_width+div_gap)*i-1),y)
else
cairo_move_to (cr,x,y-((div_width+div_gap)*i-1))
end
cairo_rel_line_to (cr,0,div_height)
cairo_stroke (cr)
end
end--function bars
-------------------------------------------------------------------------------
-- MAIN
function conky_main(color, theme, drawbg, unit, area_code, posfix)
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)
local updates=tonumber(conky_parse('${updates}'))
if updates>5 then
-- BACKGROUND COLOR
if color == "white" then
bgc = 0xffffff
bga = 0.4
else
bgc = 0x1e1c1a
bga = 0.8
end
local theme = ("0x" .. theme)
local w = conky_window.width
local h = conky_window.height
local hori_space = w*0.07
local vert_space = h*0.5
local xp = hori_space
local yp = vert_space
-- BACKGROUND
if drawbg == "on" then
settings={
x=0-1 , y=0 ,
w=w+1 , h=h ,
border=1 ,
colour={{0,bgc,0.2},},
};draw_box(settings)
settings={
x=0-1 , y=0 ,
w=w+1 , h=h ,
colour={{0.5,bgc,bga},{1,bgc,bga-0.1},},
linear_gradient={0,0,w/2,h/2},
};draw_box(settings)
end
-- APPEARANCE
if color == "white" then
bgc = 0x1e1c1a
fgc = 0x1e1c1a
bga = 0.15
fga = 0.8
else
bgc = 0xffffff
fgc = 0xffffff
bga = 0.1
fga = 0.8
end
settings = {--HOUR
txt="88:88",
x=(w/2)-140 , y=50 ,
txt_weight=1 , txt_size=50,
txt_fg_colour=fgc , txt_fg_alpha=bga ,
font = "Digital Readout Thick Upright"
};display_text(settings)
settings = {--HOUR
txt=conky_parse("${time %H:}"),
x=(w/2)-140 , y=50 ,
txt_weight=1 , txt_size=50,
txt_fg_colour=theme , txt_fg_alpha=fga ,
font = "Digital Readout Thick Upright"
};display_text(settings)
settings = {--MINUTES
txt=conky_parse("${time %M}"),
x=(w/2)-78 , y=50 ,
txt_weight=1 , txt_size=50 ,
txt_fg_colour=theme , txt_fg_alpha=fga ,
font = "Digital Readout Thick Upright"
};display_text(settings)
if unit =='f' then
unitChar = 'F°'
else
unitChar = 'C°'
end
settings = {--DAY TEMP
txt="Temp: " .. get_yahoo_weather_info("cur", area_code, unit) .. unitChar,
x=(w/2)+60 , y=20 ,
txt_weight=0 , txt_size=12 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
};display_text(settings)
settings = {--DATA
txt=conky_parse("${time %d}") .. " " .. conky_parse("${time %b}") .. " " .. conky_parse("${time %Y}"),
x=(w/2)+60 , y=35 ,
txt_weight=0 , txt_size=12 ,
txt_fg_colour=theme , txt_fg_alpha=fga ,
};display_text(settings)
settings = {--NAME WEEK
txt=conky_parse("${time %A}"),
x=(w/2)+60 , y=48 ,
txt_weight=0 , txt_size=12 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
};display_text(settings)
settings = {--DAYS GRAPH
value=tonumber(conky_parse("${time %d}")),
value_max=31 ,
x=w/2 , y=yp ,
graph_radius=33 ,
graph_thickness=5 ,
graph_start_angle=215 ,
graph_unit_angle=3.6 , graph_unit_thickness=2.6 ,
graph_bg_colour=bgc , graph_bg_alpha=bga ,
graph_fg_colour=theme , graph_fg_alpha=fga ,
hand_fg_colour=theme , hand_fg_alpha=0.0 ,
txt_radius=42 ,
txt_weight=1 , txt_size=8.0 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
graduation_radius=28 ,
graduation_thickness=0 , graduation_mark_thickness=1 ,
graduation_unit_angle=27 ,
graduation_fg_colour=theme , graduation_fg_alpha=0.4 ,
caption='' ,
caption_weight=1 , caption_size=10.0 ,
caption_fg_colour=fgc , caption_fg_alpha=fga ,
};draw_gauge_ring(settings)
settings = {--MONTHS GRAPH
value=tonumber(conky_parse("${time %m}")),
value_max=12 ,
x=w/2 , y=yp ,
graph_radius=33 ,
graph_thickness=5 ,
graph_start_angle=34 ,
graph_unit_angle=9.2 , graph_unit_thickness=8.2 ,
graph_bg_colour=bgc , graph_bg_alpha=bga ,
graph_fg_colour=theme , graph_fg_alpha=fga ,
hand_fg_colour=theme , hand_fg_alpha=0.0 ,
txt_radius=42 ,
txt_weight=1 , txt_size=8.0 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
graduation_radius=28 ,
graduation_thickness=0 , graduation_mark_thickness=1 ,
graduation_unit_angle=27 ,
graduation_fg_colour=theme , graduation_fg_alpha=0.3 ,
caption='' ,
caption_weight=1 , caption_size=10.0 ,
caption_fg_colour=fgc , caption_fg_alpha=fga ,
};draw_gauge_ring(settings)
settings = {--SECONDS
value=tonumber(conky_parse("${time %S}")),
value_max = 60 ,
x = w/2 , y = yp ,
bg_colour = bgc , bg_alpha = bga ,
fg_colour = theme , fg_alpha = fga ,
radius =25 , thickness = 10 ,
start_angle = 0 , end_angle = 360 ,
lr = 0 ,
};draw_ring(settings)
settings = {--CLOCK HANDS
xc = w/2 ,
yc = yp ,
colour = bgc ,
alpha = 1 ,
show_secs = true ,
size = 40 ,
};clock_hands(settings)
xp = ((w/2)/2.6) - posfix
settings = {--CPU GRAPH CPU1
value=tonumber(conky_parse("${cpu cpu1}")),
value_max=100 ,
x=xp , y=yp ,
graph_radius=22 ,
graph_thickness=5 ,
graph_start_angle=180 ,
graph_unit_angle=2.7 , graph_unit_thickness=2.7 ,
graph_bg_colour=bgc , graph_bg_alpha=bga ,
graph_fg_colour=theme , graph_fg_alpha=fga ,
hand_fg_colour=theme , hand_fg_alpha=0.0 ,
txt_radius=35 ,
txt_weight=1 , txt_size=8.0 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
graduation_radius=28 ,
graduation_thickness=0 , graduation_mark_thickness=1 ,
graduation_unit_angle=27 ,
graduation_fg_colour=theme , graduation_fg_alpha=0.3 ,
caption='CPU' ,
caption_weight=1 , caption_size=10.0 ,
caption_fg_colour=fgc , caption_fg_alpha=fga ,
};draw_gauge_ring(settings)
settings = {--CPU GRAPH CPU2
value=tonumber(conky_parse("${cpu cpu2}")) ,
value_max=100 ,
x=xp , y=yp ,
graph_radius=17 ,
graph_thickness=5 ,
graph_start_angle=180 ,
graph_unit_angle=2.7 , graph_unit_thickness=2.7 ,
graph_bg_colour=bgc , graph_bg_alpha=bga ,
graph_fg_colour=theme , graph_fg_alpha=fga ,
hand_fg_colour=theme , hand_fg_alpha=0.0 ,
txt_radius=0 ,
txt_weight=1 , txt_size=8.0 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
graduation_radius=28 ,
graduation_thickness=0 , graduation_mark_thickness=1 ,
graduation_unit_angle=27 ,
graduation_fg_colour=theme , graduation_fg_alpha=0.3 ,
caption='' ,
caption_weight=1 , caption_size=10.0 ,
caption_fg_colour=fgc , caption_fg_alpha=fga ,
};draw_gauge_ring(settings)
xp = xp + hori_space
settings = {--MEMPERC GRAPH
value=tonumber(conky_parse("${memperc}")),
value_max=100 ,
x=xp , y=yp ,
graph_radius=22 ,
graph_thickness=5 ,
graph_start_angle=180 ,
graph_unit_angle=2.7 , graph_unit_thickness=2.7 ,
graph_bg_colour=bgc , graph_bg_alpha=bga ,
graph_fg_colour=theme , graph_fg_alpha=fga ,
hand_fg_colour=theme , hand_fg_alpha=0.0 ,
txt_radius=0 ,
txt_weight=1 , txt_size=8.0 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
graduation_radius=22 ,
graduation_thickness=4 , graduation_mark_thickness=2 ,
graduation_unit_angle=27 ,
graduation_fg_colour=theme , graduation_fg_alpha=0.5 ,
caption='MEM' ,
caption_weight=1 , caption_size=10.0 ,
caption_fg_colour=fgc , caption_fg_alpha=fga ,
};draw_gauge_ring(settings)
xp = xp + hori_space
settings = {--SWAP FILESYSTEM USED GRAPH
value=tonumber(conky_parse("${swapperc}")),
value_max=100 ,
x=xp , y=yp ,
graph_radius=22 ,
graph_thickness=5 ,
graph_start_angle=180 ,
graph_unit_angle=2.7 , graph_unit_thickness=2.7 ,
graph_bg_colour=bgc , graph_bg_alpha=bga ,
graph_fg_colour=theme , graph_fg_alpha=fga ,
hand_fg_colour=theme , hand_fg_alpha=0.0 ,
txt_radius=0 ,
txt_weight=1 , txt_size=8.0 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
graduation_radius=22 ,
graduation_thickness=4 , graduation_mark_thickness=2 ,
graduation_unit_angle=27 ,
graduation_fg_colour=theme , graduation_fg_alpha=0.5 ,
caption='SWAP' ,
caption_weight=1 , caption_size=10.0 ,
caption_fg_colour=fgc , caption_fg_alpha=fga ,
};draw_gauge_ring(settings)
xp = w/2 + 170
disks = {'/', '/home'}
disksLabel = {'ROOT', 'HOME'}
for i, partitions in ipairs(disks) do
settings = {--ROOT FILESYSTEM USED GRAPH
value=tonumber(conky_parse("${fs_used_perc " .. partitions .. "}")),
value_max=100 ,
x=xp , y=yp ,
graph_radius=22 ,
graph_thickness=5 ,
graph_start_angle=180 ,
graph_unit_angle=2.7 , graph_unit_thickness=2.7 ,
graph_bg_colour=bgc , graph_bg_alpha=bga ,
graph_fg_colour=theme , graph_fg_alpha=fga ,
hand_fg_colour=theme , hand_fg_alpha=0.0 ,
txt_radius=0 ,
txt_weight=1 , txt_size=8.0 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
graduation_radius=23 ,
graduation_thickness=0 , graduation_mark_thickness=2 ,
graduation_unit_angle=27 ,
graduation_fg_colour=theme , graduation_fg_alpha=0.5 ,
caption=disksLabel[i] ,
caption_weight=1 , caption_size=10.0 ,
caption_fg_colour=fgc , caption_fg_alpha=fga ,
};draw_gauge_ring(settings)
end
xp = xp + hori_space
settings = {--NETWORK GRAPH DOWN
value=tonumber(conky_parse("${downspeedf wlan0}")),
value_max=100 ,
x=xp , y=yp ,
graph_radius=22 ,
graph_thickness=5 ,
graph_start_angle=180 ,
graph_unit_angle=2.7 , graph_unit_thickness=2.7 ,
graph_bg_colour=bgc , graph_bg_alpha=bga ,
graph_fg_colour=theme , graph_fg_alpha=fga ,
hand_fg_colour=theme , hand_fg_alpha=0.0 ,
txt_radius=35 ,
txt_weight=1 , txt_size=8.0 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
graduation_radius=28 ,
graduation_thickness=0 , graduation_mark_thickness=1 ,
graduation_unit_angle=27 ,
graduation_fg_colour=theme , graduation_fg_alpha=0.3 ,
caption='NET' ,
caption_weight=1 , caption_size=10.0 ,
caption_fg_colour=fgc , caption_fg_alpha=fga ,
};draw_gauge_ring(settings)
settings = {--NETWORK GRAPH UP
value=tonumber(conky_parse("${upspeedf wlan0}")),
value_max=100 ,
x=xp , y=yp ,
graph_radius=17 ,
graph_thickness=5 ,
graph_start_angle=180 ,
graph_unit_angle=2.7 , graph_unit_thickness=2.7 ,
graph_bg_colour=bgc , graph_bg_alpha=bga ,
graph_fg_colour=theme , graph_fg_alpha=fga ,
hand_fg_colour=theme , hand_fg_alpha=0.0 ,
txt_radius=0 ,
txt_weight=1 , txt_size=8.0 ,
txt_fg_colour=fgc , txt_fg_alpha=fga ,
graduation_radius=28 ,
graduation_thickness=0 , graduation_mark_thickness=1 ,
graduation_unit_angle=27 ,
graduation_fg_colour=theme , graduation_fg_alpha=0.3 ,
caption='' ,
caption_weight=1 , caption_size=10.0 ,
caption_fg_colour=fgc , caption_fg_alpha=fga ,
};draw_gauge_ring(settings)
end-- if updates>5
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
end-- end main function
I was editing the wrong copy of the script.
This is embarrassing...