Page 27 of 34 FirstFirst ... 172526272829 ... LastLast
Results 261 to 270 of 334

Thread: Conky Lua & Cairo Troubleshooting

  1. #261
    Join Date
    Jan 2009
    Location
    Europe-Austria
    Beans
    1,047
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: Conky Lua & Cairo Troubleshooting

    Quote Originally Posted by wlourf View Post
    Hi,
    Yes, londonali's script is not for multiples boxes, so just for one box, you can set the height of the box with (for 100 pixels)
    Code:
    local h=100
    instead of
    Code:
    local h=conky_window.height
    You give me an idea for writing a multiple background script, it starts well :

    i will post it in a few days.

    Now, if you want to call multiple Lua scripts, use one line to load multiple files:
    Code:
    lua_load script1 script2
    see : http://conky.sourceforge.net/config_settings.html

    BUT you can use only one "lua_draw_hook_pre" in your conkyrc and only ONE "lua_draw_hook_post", so you can call 2 functions. But the easiest way is to call one function which call others functions, but you have to tweak a little bit with Lua
    Code:
    function conky_main()
         draw_bg1()
         draw_bg2()
         draw_bg3()
    end
    hth !
    Please, post your solution-i am for now happy with my one background solution, but for the future i would love to see multiple backgrounds.

    Thanks
    Attached Images Attached Images
    MacBook Pro7,1, Ubuntu 11.04 64bit

  2. #262
    Join Date
    Jan 2008
    Location
    Las Vegas, NV USA
    Beans
    11

    Re: Conky Lua & Cairo Troubleshooting

    I am also very interested in how to use 3 or more lua scripts within one conky! I haven't been able to figure it out.
    Looking forward to your post!
    Thanks

  3. #263
    Join Date
    Aug 2009
    Location
    East of Atlantic
    Beans
    81
    Distro
    Ubuntu

    Re: Conky Lua & Cairo Troubleshooting

    I am working on it

    but if you are in a hurry you can try to tweak with my bargraph widget : a bargraph is just a box but more sophisticated, mines have no rounded corners but you can draw fancy boxes with it :

    For the above image, I used this script (has to be called with "lua_draw_hook_pre main_bars"):
    Code:
    --[[ BARGRAPH WIDGET
        v2.0 by wlourf (12.07.2010)
        this widget draws a bargraph with differents effects 
        http://u-scripts.blogspot.com/2010/07/bargraph-widget.html
        
        
    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 numericla 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, défaut = 0
    skew_y    - skew bar around y axis, défaut = 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, défaut = {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
    
    
    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 March 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
    ]]
    
    require 'cairo'
    
    ----------------START OF PARAMETERS ----------
    function conky_main_bars()
        bars_settings={
            {
                name="",
                arg=1,
                max=1,
                fg_colour={0x00ffff,1},
                x=10,y=10,
                blocks=1,
                height=200,width=100,
                angle=90,
                cap="r"
            },    
    
    
    
            {
                name="",
                arg=1,
                max=1,
                alarm=0.5,
                fg_colour={0x00ff00,1},
                alarm_colour={0xff0000,1},
                x=70,y=130,
                blocks=1,
                height=190,width=50,
                smooth=true,
                angle=90,
                mid_colour={{0.33,0x0000FF,1},{0.66,0xffff00,1}}
    
            },    
    
            {
                name="",
                arg=1,
                max=1,
                alarm=50,
                bg_colour={0x00ff00,0.25},
                fg_colour={0x00ff00,1},
                alarm_colour={0xff0000,1},
                x=10,y=300,
                blocks=1,
                height=100,width=100,
                smooth=true,
                mid_colour={{0.5,0xffff00,1}}
    
            },    
    
    
            {
                name="",
                arg=1,
                max=1,
                bg_colour={0x00ff33,0},
                fg_colour={0xffff00,0},
                bg_led={0x00ff33,0.5},
                fg_led={0xffff00,1},
                led_effect="r",
                blocks=1,--20,
                x=150,
                y=200,
                height=150,--,
                width=40,
                angle=90,
                led_effect="e",
                space=1,
            },    
            
            
        }
        
    -----------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)
    
    end
    
    
    
    function draw_multi_bar_graph(t)
        cairo_save(cr)
        --check values
        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
        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=nil
            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
                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)
            
                -- 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
                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)))
            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()
            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()
                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
            
            
        end --setup_bar_graph()
    
        
        --start here !
        setup_bar_graph()
        cairo_restore(cr)
    end
    Full script and examples and readme can be download on deviantArt
    but the muliple boxes script will be more simple !

  4. #264
    Join Date
    Nov 2009
    Location
    Sankt-Petersburg, Russia
    Beans
    4
    Distro
    Ubuntu 10.10 Maverick Meerkat

    Re: Conky Lua & Cairo Troubleshooting

    my version backgraund.lua

    HTML Code:
    --[[ backgraund.lua by olgmen 16.11.2010
    
    
    lua_load /path/to/the/lua/script/backgraund.lua
    lua_draw_hook_pre draw_backgraund
    
    ]]
    require 'cairo'
    
    function conky_draw_backgraund()
    
    
    backgraund_settings={
    
    {
    bg_colour = {{0, 0x31489c, 0.5},{0.5, 0x9c5930, 0.75},{1, 0x889c30, 0.3}},
    },
    
    }
    
        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)
    
        for i,v in pairs(backgraund_settings) do
            display_background(v)
        end
    
        cairo_destroy(cr)
    
    end
    -- ------------------------------------------------------------
    function display_background(t)
    
        if t.x            == nil then t.x = 0 end
        if t.y            == nil then t.y = 0 end
        if t.width        == nil then t.width = conky_window.width end
        if t.height        == nil then t.height = conky_window.height end
        if t.radius        == nil then t.radius = (t.width+t.height)/2*0.04 end
        if t.orientation    == nil then t.orientation = "ww" end
    
        if t.bg_colour == nil then
            t.bg_colour = {{0, 0x00ffff, 0.1},{0.5, 0x00FFFF, 0.5},{1, 0x00FFFF, 0.1}}
        end
    
        local degrees = math.pi / 180.0
    
        cairo_new_sub_path (cr)
    
        cairo_arc (cr, t.x + t.width - t.radius, t.y + t.radius, t.radius, -90 * degrees, 0 * degrees)
        cairo_arc (cr, t.x + t.width - t.radius, t.y + t.height - t.radius, t.radius, 0 * degrees, 90 * degrees)
        cairo_arc (cr, t.x + t.radius, t.y + t.height - t.radius, t.radius, 90 * degrees, 180 * degrees)
        cairo_arc (cr, t.x + t.radius, t.y + t.radius, t.radius, 180 * degrees, 270 * degrees)
    
        cairo_close_path (cr)
    
    
            if #t.bg_colour == 1 then 
            cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.bg_colour[1]))
        else
            local pat
            local pts=linear_orientation_bg(t)
            pat = cairo_pattern_create_linear (pts[1], pts[2], pts[3], pts[4])
    
            for i=1, #t.bg_colour do
                cairo_pattern_add_color_stop_rgba (pat, t.bg_colour[i][1], rgb_to_r_g_b2(t.bg_colour[i]))
            end
    
            cairo_set_source (cr, pat)
            cairo_fill (cr)
            cairo_pattern_destroy(pat)
        end
    end
    Last edited by olgmen; December 19th, 2010 at 09:14 AM.

  5. #265
    Join Date
    Jan 2009
    Location
    Europe-Austria
    Beans
    1,047
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: Conky Lua & Cairo Troubleshooting

    Quote Originally Posted by olgmen View Post
    my version backgraund.lua

    HTML Code:
    --[[ backgraund.lua by olgmen 16.11.2010
    
    
    lua_load /path/to/the/lua/script/backgraund.lua
    lua_draw_hook_pre draw_backgraund
    
    ]]
    require 'cairo'
    
    function conky_draw_backgraund()
    
    
    backgraund_settings={
    
    {
    bg_colour = {{0, 0x31489c, 0.5},{0.5, 0x9c5930, 0.75},{1, 0x889c30, 0.3}},
    },
    
    }
    
        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)
    
        for i,v in pairs(backgraund_settings) do
            display_background(v)
        end
    
        cairo_destroy(cr)
    
    end
    -- ------------------------------------------------------------
    function display_background(t)
    
        if t.x            == nil then t.x = 0 end
        if t.y            == nil then t.y = 0 end
        if t.width        == nil then t.width = conky_window.width end
        if t.height        == nil then t.height = conky_window.height end
        if t.radius        == nil then t.radius = (t.width+t.height)/2*0.04 end
        if t.orientation    == nil then t.orientation = "ww" end
    
        if t.bg_colour == nil then
            t.bg_colour = {{0, 0x00ffff, 0.1},{0.5, 0x00FFFF, 0.5},{1, 0x00FFFF, 0.1}}
        end
    
        local degrees = math.pi / 180.0
    
        cairo_new_sub_path (cr)
    
        cairo_arc (cr, t.x + t.width - t.radius, t.y + t.radius, t.radius, -90 * degrees, 0 * degrees)
        cairo_arc (cr, t.x + t.width - t.radius, t.y + t.height - t.radius, t.radius, 0 * degrees, 90 * degrees)
        cairo_arc (cr, t.x + t.radius, t.y + t.height - t.radius, t.radius, 90 * degrees, 180 * degrees)
        cairo_arc (cr, t.x + t.radius, t.y + t.radius, t.radius, 180 * degrees, 270 * degrees)
    
        cairo_close_path (cr)
    
    
            if #t.bg_colour == 1 then 
            cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.bg_colour[1]))
        else
            local pat
            local pts=linear_orientation_bg(t)
            pat = cairo_pattern_create_linear (pts[1], pts[2], pts[3], pts[4])
    
            for i=1, #t.bg_colour do
                cairo_pattern_add_color_stop_rgba (pat, t.bg_colour[i][1], rgb_to_r_g_b2(t.bg_colour[i]))
            end
    
            cairo_set_source (cr, pat)
            cairo_fill (cr)
            cairo_pattern_destroy(pat)
        end
    end
    Multiple shadows or? Can you post some screenshot and how to?
    MacBook Pro7,1, Ubuntu 11.04 64bit

  6. #266
    Join Date
    Nov 2009
    Location
    Sankt-Petersburg, Russia
    Beans
    4
    Distro
    Ubuntu 10.10 Maverick Meerkat

    Re: Conky Lua & Cairo Troubleshooting

    I apologize for the incomplete script laid out earlier.
    I have no practice in writing in English, and so I am using an electronic translator.





    Code:
    --[[ backgraund.lua от olgmen 16.11.2010
    
    Выводит в окно conky фон с градиентной окраской
    Для запуска скрипта поместите следующие строки в conkyrc выше слова TEXT
    
    Displays the window conky background with gradient color
    To run the script put the following lines to the above words conkyrc 
    
    lua_load /path/to/the/lua/script/backgraund.lua
    lua_draw_hook_pre draw_content
    
    ]]
    require 'cairo'
    
    function conky_draw_content()
    
    
    backgraund_settings={
    
    {            -- default
    
    --x = 160,        -- координаты x, по умолчанию = 0
                -- coordinates x, default = 0
    
    --y = 10,        -- координаты y, по умолчанию = 0
                -- coordinates x, default = 0
    
    --height = 145,        -- высота, по умолчанию высота окна
                -- height, the default window height
    
    --width = 150,        -- ширина, по умолчанию ширина окна
                -- width, the default width of the window
    
    --orientation = "ne",    -- градация, доступны "nn", "ne", "ee", "se", "ss", "sw", "ww", "nw"
                --    по умолчанию "ww"
                -- Graduations, available "nn", "ne", "ee", "se", "ss", "sw", "ww", "nw"
                -- default "ww"
    
    --bg_colour = {{0, 0x31489c, 0.5},{0.5, 0x9c5930, 0.75},{1, 0x889c30, 0.3}},
    },
    
    {            -- top left
    
    x = 10,
    y = 10,
    height = 145,
    width = 140,
    orientation = "ne",
    bg_colour = {{0, 0x31489c, 0.5},{0.5, 0x9c5930, 0.75},{1, 0x889c30, 0.3}},
    
    },
    
    {            -- top right
    
    x = 160,
    y = 10,
    height = 145,
    width = 140,
    orientation = "ww",
    bg_colour = {{0, 0x00ffff, 0.1},{0.5, 0x00FFFF, 0.5},{1, 0x00FFFF, 0.1}},
    
    },
    
    {            -- bottom left
    
    x = 10,
    y = 170,
    height = 145,
    width = 140,
    orientation = "nn",
    
    },
    
    }
    
        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)
    
    
    
        for i,v in pairs(backgraund_settings) do
            display_background(v)
        end
    
    
    cairo_destroy(cr)
    
    end
    -- ---------------------------------------
    function display_background(t)
    
        if t.x            == nil then t.x = 0 end
        if t.y            == nil then t.y = 0 end
        if t.width        == nil then t.width = conky_window.width end
        if t.height        == nil then t.height = conky_window.height end
        if t.radius        == nil then t.radius = (t.width+t.height)/2*0.04 end
        if t.orientation    == nil then t.orientation = "ww" end
    
        if t.bg_colour == nil then
            t.bg_colour = {{0, 0xffffff, 0.5},{1, 0x000000, 0.5}}
        end
    
        local degrees = math.pi / 180.0
    
        cairo_new_sub_path (cr)
    
        cairo_arc (cr, t.x + t.width - t.radius, t.y + t.radius, t.radius, -90 * degrees, 0 * degrees)
        cairo_arc (cr, t.x + t.width - t.radius, t.y + t.height - t.radius, t.radius, 0 * degrees, 90 * degrees)
        cairo_arc (cr, t.x + t.radius, t.y + t.height - t.radius, t.radius, 90 * degrees, 180 * degrees)
        cairo_arc (cr, t.x + t.radius, t.y + t.radius, t.radius, 180 * degrees, 270 * degrees)
    
        cairo_close_path (cr)
    
    -- линейная градация
    
            if #t.bg_colour == 1 then 
            cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.bg_colour[1]))
        else
            local pat
            local pts=linear_orientation_bg(t)
            pat = cairo_pattern_create_linear (pts[1], pts[2], pts[3], pts[4])
    
            for i=1, #t.bg_colour do
                cairo_pattern_add_color_stop_rgba (pat, t.bg_colour[i][1], rgb_to_r_g_b2(t.bg_colour[i]))
            end
    
            cairo_set_source (cr, pat)
            cairo_fill (cr)
            cairo_pattern_destroy(pat)
        end
    end
    
    -- ---------------------------------------
    function rgb_to_r_g_b2(tcolour)
        colour, alpha = tcolour[2], tcolour[3]
        return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
    end
    -- ----------------------------------------
    
    function linear_orientation_bg(t)
    
        if t.orientation    == "nn" then
            p = {t.x + t.width/2, t.y, t.x + t.width/2, t.y + t.height}
        elseif t.orientation    == "ne" then
            p = {t.x + t.width, t.y, t.x, t.y + t.height}
        elseif t.orientation    == "ee" then
            p = {t.x + t.width, t.y + t.height/2, t.x, t.y + t.height/2}
        elseif t.orientation    == "se" then
            p = {t.x +t.width, t.y + t.height, t.x, t.y}
        elseif t.orientation    == "ss" then
            p = {t.x + t.width/2, t.y + t.height, t.x + t.width/2, t.y}
        elseif t.orientation    == "sw" then
            p = {t.x, t.y + t.height, t.x + t.width, t.y}
        elseif t.orientation    == "ww" then
            p = {t.x, t.y + t.height/2, t.x + t.width, t.y + t.height/2}
        else
            p = {t.x, t.y, t.x + t.width, t.y + t.height}
        end
    
        return p
    end

  7. #267
    Join Date
    Jan 2009
    Location
    Europe-Austria
    Beans
    1,047
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: Conky Lua & Cairo Troubleshooting

    Thanks a lot this looks beautiful...

    So, i made some modifications to suite my needs. Thanks a lot olgmen -this is really nice job and very easy to adapt even to total amateurs as me...
    Code:
    --[[ backgraund.lua от olgmen 16.11.2010
    
    Выводит в окно conky фон с градиентной окраской
    Для запуска скрипта поместите следующие строки в conkyrc выше слова TEXT
    
    Displays the window conky background with gradient color
    To run the script put the following lines to the above words conkyrc 
    
    lua_load /path/to/the/lua/script/backgraund.lua
    lua_draw_hook_pre draw_content
    
    ]]
    require 'cairo'
    
    function conky_draw_content()
    
    
    backgraund_settings={
    
    
    
    {            -- top
    
    x = 1,
    y = 1,
    height = 185,
    width = 190,
    orientation = "ne",
    bg_colour = {{0, 0x000000, 0.3},{0.5, 0x000000, 0.3},{1, 0x000000, 0.3}},
    
    },
    
    {            -- middle
    
    x = 1,
    y = 192,
    height = 206,
    width = 190,
    orientation = "ww",
    bg_colour = {{0, 0x000000, 0.3},{0.5, 0x000000, 0.3},{1, 0x000000, 0.3}},
    
    },
    
    {            -- bottom
    
    x = 1,
    y = 404,
    height = 111,
    width = 190,
    orientation = "nn",
    
    },
    
    }
    
        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)
    
    
    
        for i,v in pairs(backgraund_settings) do
            display_background(v)
        end
    
    
    cairo_destroy(cr)
    
    end
    -- ---------------------------------------
    function display_background(t)
    
        if t.x            == nil then t.x = 0 end
        if t.y            == nil then t.y = 0 end
        if t.width        == nil then t.width = conky_window.width end
        if t.height        == nil then t.height = conky_window.height end
        if t.radius        == nil then t.radius = (t.width+t.height)/2*0.04 end
        if t.orientation    == nil then t.orientation = "ww" end
    
        if t.bg_colour == nil then
            t.bg_colour = {{0, 0x000000, 0.3},{1, 0x000000, 0.3}}
        end
    
        local degrees = math.pi / 180.0
    
        cairo_new_sub_path (cr)
    
        cairo_arc (cr, t.x + t.width - t.radius, t.y + t.radius, t.radius, -90 * degrees, 0 * degrees)
        cairo_arc (cr, t.x + t.width - t.radius, t.y + t.height - t.radius, t.radius, 0 * degrees, 90 * degrees)
        cairo_arc (cr, t.x + t.radius, t.y + t.height - t.radius, t.radius, 90 * degrees, 180 * degrees)
        cairo_arc (cr, t.x + t.radius, t.y + t.radius, t.radius, 180 * degrees, 270 * degrees)
    
        cairo_close_path (cr)
    
    -- линейная градация
    
            if #t.bg_colour == 1 then 
            cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.bg_colour[1]))
        else
            local pat
            local pts=linear_orientation_bg(t)
            pat = cairo_pattern_create_linear (pts[1], pts[2], pts[3], pts[4])
    
            for i=1, #t.bg_colour do
                cairo_pattern_add_color_stop_rgba (pat, t.bg_colour[i][1], rgb_to_r_g_b2(t.bg_colour[i]))
            end
    
            cairo_set_source (cr, pat)
            cairo_fill (cr)
            cairo_pattern_destroy(pat)
        end
    end
    
    -- ---------------------------------------
    function rgb_to_r_g_b2(tcolour)
        colour, alpha = tcolour[2], tcolour[3]
        return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
    end
    -- ----------------------------------------
    
    function linear_orientation_bg(t)
    
        if t.orientation    == "nn" then
            p = {t.x + t.width/2, t.y, t.x + t.width/2, t.y + t.height}
        elseif t.orientation    == "ne" then
            p = {t.x + t.width, t.y, t.x, t.y + t.height}
        elseif t.orientation    == "ee" then
            p = {t.x + t.width, t.y + t.height/2, t.x, t.y + t.height/2}
        elseif t.orientation    == "se" then
            p = {t.x +t.width, t.y + t.height, t.x, t.y}
        elseif t.orientation    == "ss" then
            p = {t.x + t.width/2, t.y + t.height, t.x + t.width/2, t.y}
        elseif t.orientation    == "sw" then
            p = {t.x, t.y + t.height, t.x + t.width, t.y}
        elseif t.orientation    == "ww" then
            p = {t.x, t.y + t.height/2, t.x + t.width, t.y + t.height/2}
        else
            p = {t.x, t.y, t.x + t.width, t.y + t.height}
        end
    
        return p
    end
    Attached Images Attached Images
    Last edited by vickoxy; December 19th, 2010 at 04:37 PM.
    MacBook Pro7,1, Ubuntu 11.04 64bit

  8. #268
    Join Date
    Aug 2009
    Location
    East of Atlantic
    Beans
    81
    Distro
    Ubuntu

    Re: Conky Lua & Cairo Troubleshooting

    Hi olgmen, I recognize the "orientation" parameter I usually use when I don't know in advance the size of a shape!

    Here is my contribution to the boxes : I don't use the orientation parameter but the user can set the gradient with theses parameters:
    a linear gradient is defined by two points
    Code:
    linear_gradient = {x1,y1,x2,y2},
    or
    a radial gradient is defined by two circles (x and y center and radius)
    Code:
    radial_gradient = {x1,y1,r1,x2,y2,r2 },
    I added another way to draw corners :

    The top one is the default corner, the bottom one is draw with the parameter
    Code:
    mode="circle",
    I also added a border parameter (default=0) but if border>0 then only the border is drawn.

    Tweaking with the 9 parameters give the image attached, with rectangles, circles or amazing and useless shapes!

    Note : The script has been updated later in this topic : http://ubuntuforums.org/showpost.php...&postcount=281
    Attached Images Attached Images
    Last edited by wlourf; January 27th, 2011 at 11:07 PM.

  9. #269
    Join Date
    Dec 2010
    Beans
    2

    Re: Conky Lua & Cairo Troubleshooting

    hi wlourf,
    i found your scripts on deviantart and your blog a few days ago. i really like the designs and patterns i can make with them, although it takes me a long time to come up with anything that looks good.
    I am running conky on a mobile phone (nokia n900) and the memory and cpu is quite limited. I noticed conky was eating about 100mb of ram overnight so I spent a considerable amount of time trying to figure out enough cairo and lua to stop any memory leaks. I am not sure how well the garbage collection works in lua with global vars, in the end the last memory leaks I found were from some missing cairo_pattern_destroys. But there might have been more leaks from failing to take ownership of matrixes and font extents, and the other normal lua variables getting lost. I am attaching fixed versions of the scripts I am using from you, and also a scripts I found that might help in the future:
    strict.lua - i found this file online somewhere, it's supposed to prevent you from accidentally making global vars, i changed it to just print a warning though.

    p.s.
    i found this conky variable "to_bytes" useful with your scripts because it will convert a string value like 123M or 123mb (mib?) or whatever back into a real number by multiplying it by 1024 a few times, but it seemed to be broken because it only accepts integers and of course conky returns decimals all the time (12.3G). Luckily it was easy to fix, but it's not going to help the rest of you unless you recompile or report the bug.

    screenshot:
    Attached Files Attached Files
    Last edited by Creamy Goodness; December 20th, 2010 at 06:22 AM. Reason: added screenshot, updated attachment to include more scripts

  10. #270
    Join Date
    Dec 2010
    Location
    France
    Beans
    2

    Re: Conky Lua & Cairo Troubleshooting

    Hello, I'm happy to join the communauty Well, I've got a problem with my conky and I can't find any issu.

    I'd like to have rings for:

    • cpu0 perc
    • cpu1 perc
    • ram perc
    • space used by "/"
    • space used by "/home"

    All is OK, except for "/home". Here is a screenshot and the lua

    Code:
    --[[
    --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='cpu0',
            max=100,
            bg_colour=0xFFFFFF,
            bg_alpha=0.2,
            fg_colour=0xFFFFFF,
            fg_alpha=1,
            x=60, y=80,
            radius=40,
            thickness=5,
            start_angle=0,
            end_angle=180
        },
        {
            name='cpu',
            arg='cpu1',
            max=100,
            bg_colour=0xFFFFFF,
            bg_alpha=0.2,
            fg_colour=0xFFFFFF,
            fg_alpha=1,
            x=59, y=160,
            radius=40,
            thickness=5,
            start_angle=180,
            end_angle=360
        },
        {
            name='memperc',
            arg='',
            max=100,
            bg_colour=0xFFFFFF,
            bg_alpha=0.2,
            fg_colour=0xFFFFFF,
            fg_alpha=1,
            x=60, y=240,
            radius=40,
            thickness=5,
            start_angle=0,
            end_angle=180
        },
        {
        name='fs_used_perc',
        arg='/',
        max=100,
        bg_colour=0xFFFFFF,
        bg_alpha=0.2,
        fg_colour=0xFFFFFF,
        fg_alpha=1,
            x=59, y=320,
            radius=40,
            thickness=5,
        start_angle=180,
            end_angle=360
        },
        {
        name='fs_used_perc',        
        arg='/home',
            max=100,
            bg_colour=0xFFFFFF,
            bg_alpha=0.2,
            fg_alpha=0xFFFFFF,
            fg_alpha=1,
            x=60, y=400,
            radius=40,
            thickness=5,
            start_angle=0,
            end_angle=180
        },
    } 
    
    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
    I have also this message : "Conky: llua_do_call: function conky_ring_stats execution failed: scripts/slalom.lua:96: attempt to perform arithmetic on local 'colour' (a nil value)"
    The ligne # 96 is : "return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha"

    Can somebody help me to fix this ? Thank you.

Page 27 of 34 FirstFirst ... 172526272829 ... LastLast

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
  •