Beiträge von KTT73 im Thema „[Lua] Farbverlauf in einem Graphen“
-
-
Hab mal ein bisschen rumgespielt mit deinem Script. Auch hier sind die Tage verschoben, anders als bei deinem Screenshot. Liegt das wirklich nur am Font?
Wie kann man hier leer Zeilen einfügen? Würde unter dem Monat ein bisschen mehr Platz haben wollen.
Hier mal meine Anpassungen.
Code
Alles anzeigen-- Ende Monatsübersicht zusammenstellen / End Compile monthly overview -- Schreiben... / write... write_text(cr, mainx+66, mainy, os.date("%B").." "..os.date("%Y"), {font="Cantarell Mono", size=14, color="0xFF4500", bold=true, align="c"}) --KTT write_text(cr, mainx+1, mainy+17, " Mo Di Mi Do Fr ", {font="Ubuntu Mono", size=12, bold=true, align="l"}) --KTT write_text(cr, mainx+91, mainy+17, " Sa So", {font="Ubuntu Mono", size=12, bold=true, color="0x0ab1ff", align="l"}) write_text(cr, mainx+1, mainy+17, " Mo Di Mi Do Fr ", {font="Cantarell Mono", size=12, bold=true, align="l"}) write_text(cr, mainx+91, mainy+17, " Sa So", {font="Cantarell Mono", size=12, bold=true, color="0xFF4500", align="l"}) --KTT+ write_text(cr, mainx+66, mainy+100, os.date("KW %V"), {font="Cantarell Mono", size=14, color="0xFF4500", align="c"}) --KTT- for w=1,week do wy=mainy+30+((w-1)*12) wx=mainx+90 --KTT write_text(cr, mainx, wy, wd[w], {font="Ubuntu Mono", size=12, align="l"}) --KTT write_text(cr, wx, wy, we[w], {font="Ubuntu Mono", size=12, align="l", color="0x1e90ff"}) -- Farbe/Color WE write_text(cr, mainx, wy, wd[w], {font="Cantarell Mono", size=12, align="l"}) write_text(cr, wx, wy, we[w], {font="Cantarell Mono", size=12, align="l", color="0xFF4500"}) -- Farbe/Color WE end -- Ende Schreiben / End write
-
-
-
Danke, ich werde das testen und berichten, sieht aber vielversprechend aus.
-
Die Farbe wird über "fg_colour" definiert.
Ist klar. ich möchte das der Graph bei z.Bsp. bei Gelb anfängt und wenn er voll ausschlägt Rot ist. Alledings nicht der gesamte, sondern vorn gelb hinten rot.
ein Beispiel
http://www.ifxgroup.net/conky.htm#lua_graph
Hier (und auch bei anderen Graphen) wird immer wieder von -t gesprochen, um die Farbe anhand der Auslastung zu verändern.Ich raff es nicht
-
Moin,
ich habe in meinem Conky Ringe, diese funktionieren als Graphen. Jetzt würde ich gern dort einen Farbverlauf einbringen. Also von sagen wir als Beispiel gelb bis rot. Habe aber keine Ahnung wie.
Hier mal das von mir angepasste aber nicht erstellte Script:
Code
Alles anzeigen--[[ 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 near the end of the script 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) KTT73: - Adressierung geändert - Geometrie geändert - Positionen geändert - etc. ]] settings_table = { { name='nvidia', arg='gpuutil', max=100, bg_colour=0xDCDCDC, bg_alpha=0.2, fg_colour=0xCD3700, fg_alpha=0.8, x=400, y=510, radius=13, thickness=10, start_angle=180, end_angle=420 }, { name='nvidia', arg='temp', max=100, bg_colour=0xDCDCDC, bg_alpha=0.2, fg_colour=0xCD3700, fg_alpha=0.8, x=400, y=510, radius=28, thickness=10, start_angle=180, end_angle=420 }, { name='nvidia', arg='fanlevel', max=100, bg_colour=0xDCDCDC, bg_alpha=0.4, fg_colour=0xCD3700, fg_alpha=0.8, x=400, y=510, radius=44, thickness=10, start_angle=180, end_angle=420 }, { name='nvidia', arg='gpufreq', max=2000, bg_colour=0xDCDCDC, bg_alpha=0.6, fg_colour=0xCD3700, fg_alpha=0.8, x=400, y=510, radius=60, thickness=10, start_angle=180, end_angle=420 }, { name='nvidia', arg='memperc', max=100, bg_colour=0xDCDCDC, bg_alpha=0.8, fg_colour=0xCD3700, fg_alpha=0.8, x=400, y=510, radius=76, thickness=10, start_angle=180, end_angle=420 }, } 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 cairo_surface_destroy(cs) cairo_destroy(cr) end