Page 81 of 287 FirstFirst ... 3171798081828391131181 ... LastLast
Results 801 to 810 of 2865

Thread: HOWTO: VinDSL Conky Script

  1. #801

    Re: HOWTO: VinDSL Conky Script

    Quote Originally Posted by VinDSL View Post
    Thought I would post a January screenie...

    I'm riding on the fringe-edge of Ubudom, right now.
    Gnome-Shell 3.7.4.1 (Staging) / Linux 3.8-rc4 / Chromium 26 (Canary) / Conky 1.9.0 / ConkyWX 0.7.9
    GS (Staging) has destroyed customization in Unity (stuck with the default settings), but GS is looking sexy...
    Fantastic - looking Goooood - and greetings for the new year and the season as well.



    My efforts to take conkywx to greater heights
    The image shows what is coming out of the new conkywx.

    The effort is to keep the output same as before while changing the whole structure inside. The average user should not notice anything - but the FASTer speed.

    The Metar info is still there though not showing in the image.

    Some acronyms like AAH always above horizon and NMT no meridian transit and others....

    I still have to update the wiki - bite by bite we eat

    Notice the CT NT AT - twilight times - still need tweaking...

    I am very excited about the new conkywx but some work still needs to be done.

    I have looked at the mobile site of wunderground but not really usable as I do need more information and the US 10 day forecast is not straight forward.

    cheers
    Last edited by paramvir; January 22nd, 2013 at 08:40 AM.

  2. #802
    Join Date
    Nov 2011
    Beans
    8

    Re: HOWTO: VinDSL Conky Script

    New to linux and posting. Couple of noob questions so I can share what this thread has taught me:

    1. How do I paste a screenshot into a new or replay post?

    2. How do I insert my .conkyrc, etc. into the scrolling "Code:" box?

    Thanks,

    Mark

  3. #803

    Re: HOWTO: VinDSL Conky Script

    Quote Originally Posted by MarkWP View Post
    New to linux and posting. Couple of noob questions so I can share what this thread has taught me:

    1. How do I paste a screenshot into a new or replay post?

    2. How do I insert my .conkyrc, etc. into the scrolling "Code:" box?

    Thanks,

    Mark
    HI Mark

    attaching a screenshot / image
    1 way
    is you can use the attachment feature = you will notice a paper clip right of the smile for adding emoticons - but you will need to change the size of the attachement.
    Another way is
    you upload to an image hosting site like in my post and use the BBCode. you can paste it directly into the message and click preview to see it in your message.

    inserting text as code
    on the icon toolbar in the message editor you see # button - you can use that to enter you text between starting and ending "code" markers with square brackets


    cheers

  4. #804
    Join Date
    Nov 2011
    Beans
    8

    Re: HOWTO: VinDSL Conky Script

    Thanks Paramvir. I had just found the beginners info tutorial and happened to peek back here and found your response.

    Although I've been a member since 2011, I've only recently gotten "involved" with linux. Being retired is great in a lot of ways!

    Here's my initial effort based on the work you, VinDsl and the others in this thread have done. I also did some researching for vertical text and bargraphs, and found alot of conky info on the Deviant Art site. I have included the references in the attached "info.lua" and "bargraph1.lua". The conkyrc, conkywx etc are all "stock" with the exception of sizing and location information.

    Thanks again to you, Vin and all the rest on this thread!!

    Hope this works:

    Screenshot from 2013-01-21 10:18:58.png
    Bargraph.lua code:
    Info.lua code:
    Code:
    info.odt

  5. #805
    Join Date
    Nov 2011
    Beans
    8

    Re: HOWTO: VinDSL Conky Script

    Well, kinda

    How 'bout:

    Screenshot from 2013-01-21 10:18:58.png

    and:

    Code:
    --[[ BARGRAPH WIDGET
    	v2.1 by wlourf (07 Jan. 2011)
    	this widget draws a bargraph with different effects 
    	http://u-scripts.blogspot.com/2010/07/bargraph-widget.html
    	
    To call the script in a conky, use, before TEXT
    	lua_load /path/to/the/script/bargraph.lua
    	lua_draw_hook_pre main_rings
    and add one line (blank or not) after TEXT
    
    	
    Parameters are :
    3 parameters are mandatory
    name	- the name of the conky variable to display, for example for {$cpu cpu0}, just write name="cpu"
    arg		- the argument of the above variable, for example for {$cpu cpu0}, just write arg="cpu0"
    		  arg can be a numerical value if name=""
    max		- the maximum value the above variable can reach, for example, for {$cpu cpu0}, just write max=100
    	
    Optional parameters:
    x,y		- coordinates of the starting point of the bar, default = middle of the conky window
    cap		- end of cap line, ossibles values are r,b,s (for round, butt, square), default="b"
    		  http://www.cairographics.org/samples/set_line_cap/
    angle	- angle of rotation of the bar in degress, default = 0 (i.e. a vertical bar)
    		  set to 90 for an horizontal bar
    skew_x	- skew bar around x axis, default = 0
    skew_y	- skew bar around y axis, default = 0
    blocks  - number of blocks to display for a bar (values >0) , default= 10
    height	- height of a block, default=10 pixels
    width	- width of a block, default=20 pixels
    space	- space between 2 blocks, default=2 pixels
    angle_bar	- this angle is used to draw a bar on a circular way (ok, this is no more a bar !) default=0
    radius		- for cicular bars, internal radius, default=0
    			  with radius, parameter width has no more effect.
    
    Colours below are defined into braces {colour in hexadecimal, alpha}
    fg_colour	- colour of a block ON, default= {0x00FF00,1}
    bg_colour	- colour of a block OFF, default = {0x00FF00,0.5}
    alarm		- threshold, values after this threshold will use alarm_colour colour , default=max
    alarm_colour - colour of a block greater than alarm, default=fg_colour
    smooth		- (true or false), create a gradient from fg_colour to bg_colour, default=false 
    mid_colour	- colours to add to gradient, with this syntax {position into the gradient (0 to1), colour hexa, alpha}
    			  for example, this table {{0.25,0xff0000,1},{0.5,0x00ff00,1},{0.75,0x0000ff,1}} will add
    			  3 colurs to gradient created by fg_colour and alarm_colour, default=no mid_colour
    led_effect	- add LED effects to each block, default=no led_effect
    			  if smooth=true, led_effect is not used
    			  possibles values : "r","a","e" for radial, parallelel, perdendicular to the bar (just try!)
    			  led_effect has to be used with theses colours :
    fg_led		- middle colour of a block ON, default = fg_colour
    bg_led		- middle colour of a block OFF, default = bg_colour
    alarm_led	- middle colour of a block > ALARM,  default = alarm_colour
    
    reflection parameters, not avaimable for circular bars
    reflection_alpha    - add a reflection effect (values from 0 to 1) default = 0 = no reflection
                          other values = starting opacity
    reflection_scale    - scale of the reflection (default = 1 = height of text)
    reflection_length   - length of reflection, define where the opacity will be set to zero
    					  calues from 0 to 1, default =1
    reflection			- position of reflection, relative to a vertical bar, default="b"
    					  possibles values are : "b","t","l","r" for bottom, top, left, right
    draw_me     - if set to false, text is not drawn (default = true or 1)
                  it can be used with a conky string, if the string returns 1, the text is drawn :
                  example : "${if_empty ${wireless_essid wlan0}}${else}1$endif",
    
    v1.0 (10 Feb. 2010) original release
    v1.1 (13 Feb. 2010) numeric values can be passed instead conky stats with parameters name="", arg = numeric_value	
    v1.2 (28 Feb. 2010) just renamed the widget to bargraph
    v1.3 (03 Mar. 2010) added parameters radius & angle_bar to draw the bar in a circular way
    v2.0 (12 Jul. 2010) rewrite script + add reflection effects and parameters are now set into tables
    v2.1 (07 Jan. 2011) Add draw_me parameter and correct memory leaks, thanks to "Creamy Goodness"
    
    --      This program is free software; you can redistribute it and/or modify
    --      it under the terms of the GNU General Public License as published by
    --      the Free Software Foundation version 3 (GPLv3)
    --     
    --      This program is distributed in the hope that it will be useful,
    --      but WITHOUT ANY WARRANTY; without even the implied warranty of
    --      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    --      GNU General Public License for more details.
    --     
    --      You should have received a copy of the GNU General Public License
    --      along with this program; if not, write to the Free Software
    --      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
    --      MA 02110-1301, USA.		
    
    ]]
    
    require 'cairo'
    
    ----------------START OF PARAMETERS ----------
    function conky_main_bars()
    	local bars_settings={
    
    		{
    			--Core Use graph (1-1)
    			name="cpu",
    			arg="cpu0",
    			max=100,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			x=13,y=310,
    			blocks=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    							
    		},
    
    		{
    			--Frequency graph (1-2)
    			name="freq_g",
    			arg="cpu0",
    			max=3.7,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.5,0xFFFF00,.5},{0.8,0xFF0000,.9}},
    			x=31,y=310,
    			blocks=1,
    			space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{
    			--Vcore graph (1-3)
    			name="execi 6",
    			arg="sensors | grep Vcore | cut -c16-20",
    			max=1.35,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.7,0xffff00,.3},{0.85,0xFF0000,.5},{0.9,0xFF0000,.9}},
    			x=49,y=310,
    			blocks=1,
    			--space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{	
    
    			--Temperature graph (1-4)
    			name="execi 6",
    			arg="sensors | grep 'Core 0' | cut -c18-19",
    			max=70,
    			min=25,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.7,0xffff00,.3},{0.8,0xFF0000,.5},{0.9,0xFF0000,1}},
    			x=67,y=310,
    			blocks=1,
    			--space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{
    			--Core Use graph (2-1)
    			name="cpu",
    			arg="cpu1",
    			max=100,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			x=97,y=310,
    			blocks=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    							
    		},
    
    		{
    			--Frequency graph (2-2)
    			name="freq_g",
    			arg="cpu1",
    			max=3.7,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.5,0xFFFF00,.5},{0.8,0xFF0000,.9}},
    			x=115,y=310,
    			blocks=1,
    			space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{
    			--Vcore graph (2-3)
    			name="execi 6",
    			arg="sensors | grep Vcore | cut -c16-20",
    			max=1.35,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.7,0xffff00,.3},{0.85,0xFF0000,.5},{0.9,0xFF0000,.9}},
    			x=133,y=310,
    			blocks=1,
    			--space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{	
    
    			--Temperature graph (2-4)
    			name="execi 6",
    			arg="sensors | grep 'Core 1' | cut -c18-19",
    			max=70,
    			min=25,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.7,0xffff00,.3},{0.8,0xFF0000,.5},{0.9,0xFF0000,1}},
    			x=151,y=310,
    			blocks=1,
    			--space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{
    			--Core Use graph (3-1)
    			name="cpu",
    			arg="cpu2",
    			max=100,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			x=181,y=310,
    			blocks=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    							
    		},
    
    		{
    			--Frequency graph (3-2)
    			name="freq_g",
    			arg="cpu2",
    			max=3.7,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.5,0xFFFF00,.5},{0.8,0xFF0000,.9}},
    			x=199,y=310,
    			blocks=1,
    			space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{
    			--Vcore graph (3-3)
    			name="execi 6",
    			arg="sensors | grep Vcore | cut -c16-20",
    			max=1.35,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.7,0xffff00,.3},{0.85,0xFF0000,.5},{0.9,0xFF0000,.9}},
    			x=217,y=310,
    			blocks=1,
    			--space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{	
    
    			--Temperature graph (3-4)
    			name="execi 6",
    			arg="sensors | grep 'Core 2' | cut -c18-19",
    			max=70,
    			min=25,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.7,0xffff00,.3},{0.8,0xFF0000,.5},{0.9,0xFF0000,1}},
    			x=235,y=310,
    			blocks=1,
    			--space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{
    			--Core Use graph (4-1)
    			name="cpu",
    			arg="cpu3",
    			max=100,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			x=265,y=310,
    			blocks=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    							
    		},
    
    		{
    			--Frequency graph (4-2)
    			name="freq_g",
    			arg="cpu3",
    			max=3.7,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.5,0xFFFF00,.5},{0.8,0xFF0000,.9}},
    			x=283,y=310,
    			blocks=1,
    			space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{
    			--Vcore graph (4-3)
    			name="execi 6",
    			arg="sensors | grep Vcore | cut -c16-20",
    			max=1.35,
    			min=0,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.7,0xffff00,.3},{0.85,0xFF0000,.5},{0.9,0xFF0000,.9}},
    			x=301,y=310,
    			blocks=1,
    			--space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    		{	
    
    			--Temperature graph (4-4)
    			name="execi 6",
    			arg="sensors | grep 'Core 3' | cut -c18-19",
    			max=70,
    			min=25,
    			bg_colour={0xd3d3d3,0.01},
    			fg_colour={0x00ff00,.3},
    			mid_colour={{0.7,0xffff00,.3},{0.8,0xFF0000,.5},{0.9,0xFF0000,1}},
    			x=319,y=310,
    			blocks=1,
    			--space=1,
    			height=80,width=10,
    			angle=0,
    			smooth = true,
    			--draw_me=false,
    		},
    
    }
    -----------END OF PARAMETERS--------------
    
    
        
    	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)    
    	--prevent segmentation error when reading cpu state
        if tonumber(conky_parse('${updates}'))>3 then
            for i in pairs(bars_settings) do
            	
            	draw_multi_bar_graph(bars_settings[i])
            	
            end
        end
    	cairo_destroy(cr)
    	cairo_surface_destroy(cs)
    	cr=nil
    
    end
    
    
    
    function draw_multi_bar_graph(t)
    	cairo_save(cr)
    	--check values
    	if t.draw_me == true then t.draw_me = nil end
    	if t.draw_me ~= nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end	
    	if t.name==nil and t.arg==nil then 
    		print ("No input values ... use parameters 'name' with 'arg' or only parameter 'arg' ") 
    		return
    	end
    	if t.max==nil then
    		print ("No maximum value defined, use 'max'")
    		return
    	end
    	if t.name==nil then t.name="" end
    	if t.arg==nil then t.arg="" end
    
    	--set default values	
    	if t.x == nil		then t.x = conky_window.width/2 end
    	if t.y == nil		then t.y = conky_window.height/2 end
    	if t.blocks == nil	then t.blocks=10 end
    	if t.height == nil	then t.height=10 end
    	if t.angle == nil 	then t.angle=0 end
    	t.angle = t.angle*math.pi/180
    	--line cap style
    	if t.cap==nil		then t.cap = "b" end
    	local cap="b"
    	for i,v in ipairs({"s","r","b"}) do 
    		if v==t.cap then cap=v end
    	end
    	local delta=0
    	if t.cap=="r" or t.cap=="s" then delta = t.height end
    	if cap=="s" then 	cap = CAIRO_LINE_CAP_SQUARE
    	elseif cap=="r" then
    		cap = CAIRO_LINE_CAP_ROUND
    	elseif cap=="b" then
    		cap = CAIRO_LINE_CAP_BUTT
    	end
    	--end line cap style
    	--if t.led_effect == nil	then t.led_effect="r" end
    	if t.width == nil	then t.width=20 end
    	if t.space == nil	then t.space=2 end
    	if t.radius == nil	then t.radius=0 end
    	if t.angle_bar == nil	then t.angle_bar=0 end
    	t.angle_bar = t.angle_bar*math.pi/360 --halt angle
    	
    	--colours
    	if t.bg_colour == nil 	then t.bg_colour = {0x00FF00,0.5} end
    	if #t.bg_colour~=2 		then t.bg_colour = {0x00FF00,0.5} end
    	if t.fg_colour == nil 	then t.fg_colour = {0x00FF00,1} end
    	if #t.fg_colour~=2 		then t.fg_colour = {0x00FF00,1} end
    	if t.alarm_colour == nil 	then t.alarm_colour = t.fg_colour end
    	if #t.alarm_colour~=2 		then t.alarm_colour = t.fg_colour end
    
    	if t.mid_colour ~= nil then	
    		for i=1, #t.mid_colour do    
    		    if #t.mid_colour[i]~=3 then 
    		    	print ("error in mid_color table")
    		    	t.mid_colour[i]={1,0xFFFFFF,1} 
    		    end
    		end
        end
        
    	if t.bg_led ~= nil and #t.bg_led~=2	then t.bg_led = t.bg_colour end
    	if t.fg_led ~= nil and #t.fg_led~=2	then t.fg_led = t.fg_colour end
    	if t.alarm_led~= nil and #t.alarm_led~=2 then t.alarm_led = t.fg_led end
    	
    	if t.led_effect~=nil then
    		if t.bg_led == nil then t.bg_led = t.bg_colour end
    		if t.fg_led == nil 	then t.fg_led = t.fg_colour end
    		if t.alarm_led == nil  then t.alarm_led = t.fg_led end
    	end
    	
    
    	if t.alarm==nil then t.alarm = t.max end --0.8*t.max end
    	if t.smooth == nil then t.smooth = false end
    
    	if t.skew_x == nil then 
    		t.skew_x=0 
    	else
    		t.skew_x = math.pi*t.skew_x/180	
    	end
    	if t.skew_y == nil then 
    		t.skew_y=0
    	else
    		t.skew_y = math.pi*t.skew_y/180	
    	end
    	
    	if t.reflection_alpha==nil then t.reflection_alpha=0 end
    	if t.reflection_length==nil then t.reflection_length=1 end
    	if t.reflection_scale==nil then t.reflection_scale=1 end
    	
    	--end of default values
    	
    
     	local function rgb_to_r_g_b(col_a)
    		return ((col_a[1] / 0x10000) % 0x100) / 255., ((col_a[1] / 0x100) % 0x100) / 255., (col_a[1] % 0x100) / 255., col_a[2]
    	end
    	
    	
    	--functions used to create patterns
    
    	local function create_smooth_linear_gradient(x0,y0,x1,y1)
    		local pat = cairo_pattern_create_linear (x0,y0,x1,y1)
    		cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
    		cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
    		if t.mid_colour ~=nil then
    			for i=1, #t.mid_colour do
    				cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
    			end
    		end
    		return pat
    	end
    
    	local function create_smooth_radial_gradient(x0,y0,r0,x1,y1,r1)
    		local pat =  cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
    		cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
    		cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
    		if t.mid_colour ~=nil then
    			for i=1, #t.mid_colour do
    				cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
    			end
    		end
    		return pat
    	end
    	
    	local function create_led_linear_gradient(x0,y0,x1,y1,col_alp,col_led)
    		local pat = cairo_pattern_create_linear (x0,y0,x1,y1) ---delta, 0,delta+ t.width,0)
    		cairo_pattern_add_color_stop_rgba (pat, 0.0, rgb_to_r_g_b(col_alp))
    		cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
    		cairo_pattern_add_color_stop_rgba (pat, 1.0, rgb_to_r_g_b(col_alp))
    		return pat
    	end
    
    	local function create_led_radial_gradient(x0,y0,r0,x1,y1,r1,col_alp,col_led,mode)
    		local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
    		if mode==3 then
    			cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_alp))				
    			cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
    			cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))				
    		else
    			cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_led))
    			cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))				
    		end
    		return pat
    	end
    
    
    
    
    
    
    	local function draw_single_bar()
    		--this fucntion is used for bars with a single block (blocks=1) but 
    		--the drawing is cut in 3 blocks : value/alarm/background
    		--not zvzimzblr for circular bar
    		local function create_pattern(col_alp,col_led,bg)
    			local pat
    			
    			if not t.smooth then
    				if t.led_effect=="e" then
    					pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
    				elseif t.led_effect=="a" then
    					pat = create_led_linear_gradient (t.width/2, 0,t.width/2,-t.height,col_alp,col_led)
    				elseif  t.led_effect=="r" then
    					pat = create_led_radial_gradient (t.width/2, -t.height/2, 0, t.width/2,-t.height/2,t.height/1.5,col_alp,col_led,2)
    				else
    					pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))
    				end
    			else
    				if bg then
    					pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(t.bg_colour))
    				else
    					pat = create_smooth_linear_gradient(t.width/2, 0, t.width/2,-t.height)
    				end
    			end
    			return pat
    		end
    		
    		local y1=-t.height*pct/100
    		local y2,y3
    		if pct>(100*t.alarm/t.max) then 
    			y1 = -t.height*t.alarm/100
    			y2 = -t.height*pct/100
    			if t.smooth then y1=y2 end
    		end
    		
    		if t.angle_bar==0 then
    		
    			--block for fg value
    			local pat = create_pattern(t.fg_colour,t.fg_led,false)
    			cairo_set_source(cr,pat)
    			cairo_rectangle(cr,0,0,t.width,y1)
    			cairo_fill(cr)
    			cairo_pattern_destroy(pat)
    		
    			-- block for alarm value			
    			if not t.smooth and y2 ~=nil then 
    				pat = create_pattern(t.alarm_colour,t.alarm_led,false)
    				cairo_set_source(cr,pat)
    				cairo_rectangle(cr,0,y1,t.width,y2-y1)
    				cairo_fill(cr)
    				y3=y2
    				cairo_pattern_destroy(pat)
    			else
    				y2,y3=y1,y1
    			end
    			-- block for bg value
    			cairo_rectangle(cr,0,y2,t.width,-t.height-y3)
    			pat = create_pattern(t.bg_colour,t.bg_led,true)
    			cairo_set_source(cr,pat)
    			cairo_pattern_destroy(pat)
    			cairo_fill(cr)
    		end		
    	end  --end single bar
    	
    
    
    
    
    
    	local function draw_multi_bar()
    		--function used for bars with 2 or more blocks
    		for pt = 1,t.blocks do 
    			--set block y
    			local y1 = -(pt-1)*(t.height+t.space)
    			local light_on=false
    			
    			--set colors
    			local col_alp = t.bg_colour
    			local col_led = t.bg_led
    			if pct>=(100/t.blocks) or pct>0 then --ligth on or not the block
    				if pct>=(pcb*(pt-1))  then 
    					light_on = true
    					col_alp = t.fg_colour
    					col_led = t.fg_led
    					if pct>=(100*t.alarm/t.max) and (pcb*pt)>(100*t.alarm/t.max) then 
    						col_alp = t.alarm_colour 
    						col_led = t.alarm_led 
    					end
    				end
    			end
    
    			--set colors
    			--have to try to create gradients outside the loop ?
    			local pat 
    			
    			if not t.smooth then
    				if t.angle_bar==0 then
    					if t.led_effect=="e" then
    						pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
    					elseif t.led_effect=="a" then
    						pat = create_led_linear_gradient (t.width/2, -t.height/2+y1,t.width/2,0+t.height/2+y1,col_alp,col_led)					
    					elseif  t.led_effect=="r" then
    						pat = create_led_radial_gradient (t.width/2, y1, 0, t.width/2,y1,t.width/1.5,col_alp,col_led,2)	
    					else
    						pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))
    					end
    				else
    					 if t.led_effect=="a"  then
    						 pat = create_led_radial_gradient (0, 0, t.radius+(t.height+t.space)*(pt-1),
    														 0, 0, t.radius+(t.height+t.space)*(pt),						 
    											 col_alp,col_led,3)	
    					else
    						pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))					
    					end
    					
    				end
    			else
    				
    				if light_on then
    					if t.angle_bar==0 then
    						pat = create_smooth_linear_gradient(t.width/2, t.height/2, t.width/2,-(t.blocks-0.5)*(t.height+t.space))
    					else
    						pat = create_smooth_radial_gradient(0, 0, (t.height+t.space),  0,0,(t.blocks+1)*(t.height+t.space),2)
    					end
    				else		
    					pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(t.bg_colour))
    				end
    			end
    			cairo_set_source (cr, pat)
    			cairo_pattern_destroy(pat)
    
    			--draw a block
    			if t.angle_bar==0 then
    				cairo_move_to(cr,0,y1)
    				cairo_line_to(cr,t.width,y1)
    			else		
    				cairo_arc( cr,0,0,
    					t.radius+(t.height+t.space)*(pt)-t.height/2,
    					 -t.angle_bar -math.pi/2 ,
    					 t.angle_bar -math.pi/2)
    			end
    			cairo_stroke(cr)
    		end	
    	end
    	
    	
    	
    	
    	local function setup_bar_graph()
    		--function used to retrieve the value to display and to set the cairo structure
    		if t.blocks ~=1 then t.y=t.y-t.height/2 end
    		
    		local value = 0
    		if t.name ~="" then
    			value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
    			--$to_bytes doesn't work when value has a decimal point,
    			--https://garage.maemo.org/plugins/ggit/browse.php/?p=monky;a=commitdiff;h=174c256c81a027a2ea406f5f37dc036fac0a524b;hp=d75e2db5ed3fc788fb8514121f67316ac3e5f29f
    			--http://sourceforge.net/tracker/index.php?func=detail&aid=3000865&group_id=143975&atid=757310
    			--conky bug?
    			--value = (conky_parse(string.format('${%s %s}', t.name, t.arg)))
    			--if string.match(value,"%w") then
    			--	value = conky_parse(string.format('${to_bytes %s}',value))
    			--end
    		else
    			value = tonumber(t.arg)
    		end
    
    		if value==nil then value =0 end
    		
    		pct = 100*value/t.max
    		pcb = 100/t.blocks
    		
    		cairo_set_line_width (cr, t.height)
    		cairo_set_line_cap  (cr, cap)
    		cairo_translate(cr,t.x,t.y)
    		cairo_rotate(cr,t.angle)
    
    		local matrix0 = cairo_matrix_t:create()
    		tolua.takeownership(matrix0)
    		cairo_matrix_init (matrix0, 1,t.skew_y,t.skew_x,1,0,0)
    		cairo_transform(cr,matrix0)
    
    	
    		
    		--call the drawing function for blocks
    		if t.blocks==1 and t.angle_bar==0 then
    			draw_single_bar()
    			if t.reflection=="t" or t.reflection=="b" then cairo_translate(cr,0,-t.height) end
    		else
    			draw_multi_bar()
    		end
    
    		--dot for reminder
    		--[[
    		if t.blocks ~=1 then
    			cairo_set_source_rgba(cr,1,0,0,1)
    			cairo_arc(cr,0,t.height/2,3,0,2*math.pi)
    			cairo_fill(cr)
    		else
    			cairo_set_source_rgba(cr,1,0,0,1)
    			cairo_arc(cr,0,0,3,0,2*math.pi)
    			cairo_fill(cr)
    		end]]
    		
    		--call the drawing function for reflection and prepare the mask used		
    		if t.reflection_alpha>0 and t.angle_bar==0 then
    			local pat2
    			local matrix1 = cairo_matrix_t:create()
    			tolua.takeownership(matrix1)
    			if t.angle_bar==0 then
    				pts={-delta/2,(t.height+t.space)/2,t.width+delta,-(t.height+t.space)*(t.blocks)}
    				if t.reflection=="t" then
    					cairo_matrix_init (matrix1,1,0,0,-t.reflection_scale,0,-(t.height+t.space)*(t.blocks-0.5)*2*(t.reflection_scale+1)/2)
    					pat2 = cairo_pattern_create_linear (t.width/2,-(t.height+t.space)*(t.blocks),t.width/2,(t.height+t.space)/2)
    				elseif t.reflection=="r" then
    					cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,delta+2*t.width,0)
    					pat2 = cairo_pattern_create_linear (delta/2+t.width,0,-delta/2,0)
    				elseif t.reflection=="l" then
    					cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,-delta,0)
    					pat2 = cairo_pattern_create_linear (-delta/2,0,delta/2+t.width,-0)
    				else --bottom
    					cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(t.height+t.space)*(t.reflection_scale+1)/2)
    					pat2 = cairo_pattern_create_linear (t.width/2,(t.height+t.space)/2,t.width/2,-(t.height+t.space)*(t.blocks))
    				end
    			end
    			cairo_transform(cr,matrix1)
    
    			if t.blocks==1 and t.angle_bar==0 then
    				draw_single_bar()
    				cairo_translate(cr,0,-t.height/2) 
    			else
    				draw_multi_bar()
    			end
    			
    			
    			cairo_set_line_width(cr,0.01)
    			cairo_pattern_add_color_stop_rgba (pat2, 0,0,0,0,1-t.reflection_alpha)
    			cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)
    			if t.angle_bar==0 then
    				cairo_rectangle(cr,pts[1],pts[2],pts[3],pts[4])
    			end
    			cairo_clip_preserve(cr)
    			cairo_set_operator(cr,CAIRO_OPERATOR_CLEAR)
    			cairo_stroke(cr)
    			cairo_mask(cr,pat2)
    			cairo_pattern_destroy(pat2)
    			cairo_set_operator(cr,CAIRO_OPERATOR_OVER)
    			
    		end --reflection
    		pct,pcb=nil
    	end --setup_bar_graph()
    	
    	--start here !
    	setup_bar_graph()
    	cairo_restore(cr)
    end
    Code:
    -- Vertical text based on conky/lua from xeXpanderx on Deviant Art here: http://browse.deviantart.com/customization/?order=9&q=yam#/d4n8g8i
    require 'cairo'
    function conky_draw_info()
        local updates=conky_parse('${updates}')
        update_num=tonumber(updates)
        local mt = cairo_matrix_t:create()
        if update_num > 5 then
           if conky_window==nil then return end
     
           --Create a visual area to work on (which should be the Conky window area)
           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)
    
           -- Argument passed
    		--CPU 0
           local mem_0=conky_parse('${cpu cpu0}')
           local speed_0=conky_parse('${freq_g cpu0}')
           local Vcore=conky_parse('${execi 6 sensors | grep Vcore | cut -c16-20}')
           local temp_0=conky_parse("${execi 6 sensors | grep 'Core 0' | cut -c18-21}")
    
    	--Argument passed
    		--CPU 1
           local mem_1=conky_parse('${cpu cpu1}')
           local speed_1=conky_parse('${freq_g cpu1}')
           --local Vcore=conky_parse('${execi 6 sensors | grep Vcore | cut -c16-20}')
           local temp_1=conky_parse("${execi 6 sensors | grep 'Core 1' | cut -c18-21}")
    
           -- Argument passed
    		--CPU 2
           local mem_2=conky_parse('${cpu cpu2}')
           local speed_2=conky_parse('${freq_g cpu2}')
           local Vcore=conky_parse('${execi 6 sensors | grep Vcore | cut -c16-20}')
           local temp_2=conky_parse("${execi 6 sensors | grep 'Core 2' | cut -c18-21}")
    
    	--Argument passed
    		--CPU 3
           local mem_3=conky_parse('${cpu cpu3}')
           local speed_3=conky_parse('${freq_g cpu3}')
           --local Vcore=conky_parse('${execi 6 sensors | grep Vcore | cut -c16-20}')
           local temp_3=conky_parse("${execi 6 sensors | grep 'Core 3' | cut -c18-21}")
    
    	--Core 0 Calls
    		--Memory
           show_conky_text (cr, 15, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "In Use: ", mem_0 .. " %")       
    		--Speed
           show_conky_text (cr, 33, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Speed: ", speed_0 .. " Ghz")
    		--Vcore
           show_conky_text (cr, 51, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Vcore: ", Vcore .. " v")
           		--Temp
           show_conky_text (cr, 69, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Temp: ", temp_0 .. " C")
         
    	--Core 1 Calls
    		--Memory
           show_conky_text (cr, 99, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "In Use: ", mem_1 .. " %")       
    		--Speed
           show_conky_text (cr, 117, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Speed: ", speed_1 .. " Ghz")
    		--Vcore
           show_conky_text (cr, 135, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Vcore: ", Vcore .. " v")
           		--Temp
           show_conky_text (cr, 153, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Temp: ", temp_1 .. " C")
    
    	--Core 2 Calls
    		--Memory
           show_conky_text (cr, 183, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "In Use: ", mem_2 .. " %")       
    		--Speed
           show_conky_text (cr, 201, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Speed: ", speed_2 .. " Ghz")
    		--Vcore
           show_conky_text (cr, 219, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Vcore: ", Vcore .. " v")
           		--Temp
           show_conky_text (cr, 237, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Temp: ", temp_2 .. " C")
         
    	--Core 3 Calls
    		--Memory
           show_conky_text (cr, 266, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "In Use: ", mem_3 .. " %")       
    		--Speed
           show_conky_text (cr, 284, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Speed: ", speed_3 .. " Ghz")
    		--Vcore
           show_conky_text (cr, 302, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Vcore: ", Vcore .. " v")
           		--Temp
           show_conky_text (cr, 320, 322, 0.764705882353, 0.764705882353, 0.764705882353, 1, "Temp: ", temp_3 .. " C")
         
           cairo_destroy(cr)
       end
    end
    
    function show_conky_text(cr,x_cord,y_cord,r,g,b,alpha,text,conky_variable_text)
    
    	cairo_move_to (cr,x_cord,y_cord)
    	cairo_rotate(cr, 90*math.pi/180)
    	cairo_set_source_rgba (cr, r, g, b, alpha)
    	cairo_select_font_face (cr, "DroidSans:bold", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
            cairo_set_font_size(cr,10)
    	cairo_show_text (cr, text)
    	cairo_select_font_face (cr, "DroidSans:bold", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
            cairo_set_font_size(cr,10)
            cairo_show_text (cr, conky_variable_text)
            cairo_rotate (cr, -90*math.pi/180)
    end

  6. #806

    Re: HOWTO: VinDSL Conky Script

    Quote Originally Posted by MarkWP View Post
    Well, kinda

    How 'bout:

    Screenshot from 2013-01-21 10:18:58.png

    and:
    That looks fantastic - I do not use lua but I can appreciate what looks good

    That wallpaper - Death Star from Star wars - have a read of this http://www.enterprisemission.com/moon1.htm - scroll down and you will see something similar in real life in our solar system...

    There is so much to explore - retirement can be so very very busy lol

  7. #807
    Join Date
    Nov 2011
    Beans
    8

    Re: HOWTO: VinDSL Conky Script

    Thanks Paramvir -- not too bad for a first effort. I don't pretend to really understand all the "calls" in the scripts, but trying to make things work has at least given me some understanding of what to look for and where to start.

    Couple more questions:

    I don't currently have an "offsite" storage for photos, etc. Am I able to size my screenshots to other than thumbnail and paste in the post? I resized the screenshot to 960x540, uploaded and pasted, but it still shows as a thumbnail. How can I get it to show at 960x540 inside the post area?

    Also, what's the secret of inserting a code box, then making additional comments after that box, then inserting another, etc? When working in the reply area, I clicked the # symbol, got the code brackets and inserted the text. But then I couldn't seem to get "below" the scroll box to add the next code area. I ended up "cheating" by leaving line returns at the top, then inserted codes, etc. from the bottom up. Probably not the "pro" method, but I'm learning.

  8. #808

    Re: HOWTO: VinDSL Conky Script

    Quote Originally Posted by MarkWP View Post
    [PHP]Thanks Paramvir --

    Couple more questions:

    I don't currently have an "offsite" storage for photos,

    Also, what's the secret of inserting a code box, then making additional comments after that box, then inserting another, etc? When working in the reply area,
    We all have to start somewhere Mark so no worries

    I use http://en.zimagez.com/ - create a free account and you are ready.

    when you use # thing it gives you 2 blocks of [ code ] opening and closing block has [ /code ] - there shouldn't be any spaces between [ and ] but I am showing you so it wont create a block. after the closing block you press enter key 2 times to create a line space - but if you preview it bunches it again - do not worry so long as the preview is showing fine and post it - you can always edit your post again.

  9. #809
    Join Date
    Nov 2011
    Beans
    8

    Re: HOWTO: VinDSL Conky Script

    Got it!! Thanks for your help.

    Longtime gmail user, so I used my google mydrive account.

    Let's test:



    By the way, interesting read that you sent. Makes sense to me -- we CANNOT be the only life in the universe.

  10. #810
    Join Date
    Nov 2011
    Beans
    8

    Re: HOWTO: VinDSL Conky Script

    Nope -- trying tinypic:



    Much better!

Page 81 of 287 FirstFirst ... 3171798081828391131181 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •